【问题标题】:Jquery toggle('slide') only slides onceJquery toggle('slide') 只滑动一次
【发布时间】:2013-06-10 09:59:57
【问题描述】:

我对 jquery 很陌生,所以如果我的问题太基本,请提前原谅我。我在悬停幻灯片效果方面遇到了一些问题,这似乎是 CSS 和 jquery 问题的混合。 当我将鼠标悬停在图像上时,它第一次很好地滑到图像的末尾,但随后似乎悬停效果第二次仅从第一个元素下方滑动一半,而不是从图像滑过结束。

我为此尝试了许多其他可能性,但到目前为止都没有运气,如果有人能指出我正确的方向,我将不胜感激:)

可以在这里找到我想要实现的示例

http://jsfiddle.net/robolist/rK4GD/

$('.proimg').hover(function(event) {
      $('.boxcaption',this).stop().toggle( 'slide' );
}).on('mouseleave',function(event) {
      $('.boxcaption',this).stop().toggle( 'slide' )});

提前非常感谢

【问题讨论】:

  • 没有问题是'太基本'!

标签: javascript jquery css jquery-hover


【解决方案1】:

当您在悬停时使用切换时,您不需要执行 mouseleave 事件。另请注意,stop 采用布尔参数,第一个用于清除队列,第二个用于跳转到结束:

只要做:

$('.proimg').hover(function(event) {
    $('.boxcaption',this).stop(true, true).toggle( 'slide' );
});

小提琴:http://jsfiddle.net/rK4GD/10/

见:http://api.jquery.com/stop/

【讨论】:

  • 嗨@Bernhard Poiss,非常感谢您的帮助,我最初尝试过类似的方法,但后来悬停效果不一致并变得“生涩”,有时会从悬停时的覆盖切换到悬停时的覆盖
  • @LearningJquery:您遇到不一致的主要问题是事件冒泡,这会导致在元素滑入视图时再次触发悬停事件。为了解决这个问题,用于滑入.boxcaption 的实际元素不应嵌套在触发滑动.proimg 的元素中,您也可以破解它并将stopPropagation() 调用添加到.boxcaption 元素的mouseenter。与此类似:http://jsfiddle.net/RsmxQ/
  • @FrançoisWahl 太好了,非常感谢您的帮助:)
  • @LearningJquery:很高兴你有工作要做。在 Stackoverflow 上,我们不会在问题标题中设置要解决的问题,而是您将答案标记为已接受,以帮助您解决问题。这向未来的用户表明什么对你有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 2013-12-23
相关资源
最近更新 更多