【发布时间】:2014-12-05 16:42:18
【问题描述】:
我制作了一个函数,将鼠标悬停在内容框上,并且类名为 bottomdata 的 div 从顶部向下滑动。这个功能很好用,除非你在盒子上滚动多次,动画会循环运行。我想让动画运行一次,然后在第一个动画循环完成后停止,直到它再次悬停。
$(".databox").on('mouseenter', '.box', function() {
$(this).find('.topdata').slideUp(400);
$(this).find('.bottomdata').slideDown(350);
}).on('mouseleave', '.box', function() {
$(this).find('.bottomdata').slideUp();
$(this).find('.topdata').slideDown();
});
所以我尝试使用 stop();我也尝试使用finish()。我什至尝试使用 clearQueue()。我似乎无法弄清楚。非常感谢所有帮助。
我在 jsfiddle 上包含了一个示例:http://jsfiddle.net/4cx1kygc/
【问题讨论】:
-
它没有在 Chrome 39.0.2171.71 m 上循环。你在什么浏览器上测试?
-
将鼠标悬停在它上面多次,我的浏览器是 Windows 上的 Chrome/Firefox。我认为这不是浏览器问题。
-
每次悬停时,“bottomdata”都会向上滑动以覆盖“topdata”。当我退出该框时,“bottomdata”将返回,而“topdata”仍保留在顶部。这发生在每次悬停时。你想要发生什么?
-
@JonathanM,如果你轻弹进出 9 次,动画就会发生 9 次。
标签: javascript jquery