我有这个动画在jquery中运行得很好,除了它很漂亮。 onclick,它顺利向下滚动到想要的元素。
$('#aboutMenu').click(function(){
$('html, body').animate({
scrollTop: $( $(this).attr('href') ).offset().top -200
}, 900);
return false;
根据此网页:http://julian.com/research/velocity/
我应该能够简单地#34;下载Velocity,将其包含在您的页面上,并用$ .velocity()替换jQuery的$ .animate()的所有实例。您将立即看到所有浏览器和设备的性能提升 - 特别是在移动设备上。"
我做到了,但是当我点击时,没有任何事情发生了。
我错过了什么?
答案 0 :(得分:2)
Velocity仅适用于CSS可动画属性,而不是scrollTop
,它会更改非CSS样式元素的属性。
您只需在CSS样式属性(边距,宽度等)上使用velocity
。保留旧的animate
代码,用于任何非css属性动画。
Velocity支持scrollTop
,但使用scroll
命令添加:
$element.velocity("scroll", { duration: 1500, easing: "spring" })
根据@A. Wolff
提供的https://github.com/julianshapiro/velocity/issues/26
我们从基础开始:Velocity不支持动画 像$ .animate()这样的scrollTop属性。 (它不是不动产 - jQuery对它进行了调整。)
所以scrollTop
在animate
中工作的唯一原因是因为他们特意将它添加到jQuery中。他们使用scroll
为velocity
做了同样的事情。
P.S。我们对转换使用了速度,特别是对于移动而言,它更加平滑。