【发布时间】:2018-04-29 09:26:25
【问题描述】:
我需要在加载时以动画方式将页面滚动到页面上的某个位置。它工作正常(使用 jQuery 的动画):
$(document).ready(function () {
$('html, body').animate({
scrollTop: $('#today').offset().top - 50
}, 800, "linear");
});
但是,它不是平滑的一件事。尤其是在移动设备上,感觉非常生涩。
我见过一些非常流畅的 CSS 动画(使用 transition 和 transform),但不知道如何将其应用于页面滚动。是否可以使用 CSS 做我想做的事?
【问题讨论】:
-
当然。只需应用包含 css-animation 的 css-class。例如:在 Jquery 中>
$(#today).addClass("someCoolAnimation");在 css 中:好吧,无论你想要什么。 Good starting point here 。具体来说,您希望在 translateY 上制作动画 -
添加了纯js版本
-
我注意到您提到滚动需要 2 整秒。此页面上正在加载多少内容?如果您查看开发者控制台的网络选项卡,请求的数量/请求的总大小是多少?
-
@cale_b 不需要 2 秒。这是为了回应有人说要将间隔从 800 增加到 1800。网络请求很少 - 它们不是一个因素。
-
@Geert-Jan 我看过这些文档。但我无法让它发挥作用。这就是我要样品的原因。
标签: javascript jquery html css animation