用$ .velocity替换jquery的$ .animate不起作用

时间:2016-01-21 13:05:26

标签: jquery jquery-animate velocity velocity.js

我有这个动画在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()的所有实例。您将立即看到所有浏览器和设备的性能提升 - 特别是在移动设备上。"

我做到了,但是当我点击时,没有任何事情发生了。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

Velocity仅适用于CSS可动画属性,而不是scrollTop,它会更改非CSS样式元素的属性。

您只需在CSS样式属性(边距,宽度等)上使用velocity。保留旧的animate代码,用于任何非css属性动画。

更新(感谢A.Wolff):

Velocity支持scrollTop,但使用scroll命令添加:

$element.velocity("scroll", { duration: 1500, easing: "spring" })

根据@A. Wolff提供的https://github.com/julianshapiro/velocity/issues/26

链接
  

我们从基础开始:Velocity不支持动画   像$ .animate()这样的scrollTop属性。 (它不是不动产 -   jQuery对它进行了调整。)

所以scrollTopanimate中工作的唯一原因是因为他们特意将它添加到jQuery中。他们使用scrollvelocity做了同样的事情。

P.S。我们对转换使用了速度,特别是对于移动而言,它更加平滑。