【发布时间】:2015-08-29 18:13:30
【问题描述】:
我想知道是否有更简单或更好的方法来编写在某个点后触发的 JQuery 动画。
我现在的代码是这样的;
HTML
<div class="div">
<div id="box"></div>
</div>
脚本
$(document).scroll(function() {
var scrolled = $(document).scrollTop();
if(scrolled > 300) {
$("#box").css("margin-left", "300px");
} else {
$("#box").css("margin-left", "0px");
}
});
还可以添加每个动画完成所需的不同时间量,而不是添加.css("transition", "all 2s");
【问题讨论】:
-
你能详细描述一下你到底想要做什么吗?
-
@alpha 抱歉,我只想知道有没有更好的方法来编写脚本?
-
如果您暗示要编写动画,我会使用 $("#box").animate({left: '300px'}, 2000);
-
@alpha 好的很酷,现在我可以控制速度了,但是现在它不会在 else 语句中返回,有什么想法吗?
-
不,你真的想离开 CSS 来完成它的工作,强迫 jQuery 实例化一些 CSS 转换真的没有意义。除非您使用一些 GPU 优化的 JavaScript 库,否则 jQuery 可能会比正常的 CSS 转换运行得更慢/滞后于您的页面。