我遇到重叠转换的问题 - 一个转换在前一个转换开始之前就开始了。
$obj.stop(true, false).transition({'-webkit-transform': 'translateX(' + (pos) + 'px)', 'width':width + 'px'}, 1500 );
JsFiddle示例:http://jsfiddle.net/s4r88/18/。
如果您足够快地悬停按钮,您将看到动画“跳转”到其最终设置而没有过渡。 我尝试过使用.stop()和.clearQueue()方法无济于事。
我知道还有其他方法可以实现这一点(jQuery.animate(),编写静态css),但我认为必须有一种方法可以在jQuery.transitions中解决这个问题。
有什么想法吗?
答案 0 :(得分:0)
jQuery过渡将默认链接动画。所以,不要像在代码中那样使用任何stop()方法。实际上stop()不适用于transition()。
_$blackLine.transition({'-webkit-transform': 'translateX(' + (pos) + 'px)', 'width':width + 'px'}, 1500 );// without stop() method
需要注意的是,如果您将所有菜单都悬停在上面,则所有动画都会一个接一个地播放。 作为旁注,有一些jQuery Transit的pull请求/分支添加了stop()functionnality:https://github.com/rstacruz/jquery.transit/pulls
答案 1 :(得分:0)
这是一个老线程,所以你可能不再有问题了,但是对于那些通过搜索来到这里的人来说,问题是堆叠动画和动画太慢了。
如果你避免使用stop()并使用clearQueue()然后将动画时间从1.5秒减少到400毫秒,问题似乎就解决了。
_$blackLine.clearQueue().transition({'-webkit-transform': 'translateX(' + (pos) + 'px)', 'width':width + 'px'}, 400 );
请参阅此处的小提琴:http://jsfiddle.net/2abg1cn5/