修改hover jquery函数

修改hover jquery函数,jquery,Jquery,考虑以下几点: 有一个面板(让它成为一个div元素),它的高度由悬停函数控制。唯一设置动画的css属性是“高度”。两个动画(鼠标悬停时+=500px;鼠标悬停时-=500px)的持续时间均为10秒。 你能想象这样的情景吗:在这20秒的时间里,你可以“不小心”将鼠标来回滚动至少10次 jquery所做的是记住所有发生的事情(用鼠标),并链接一长串不必要的动画 我需要你们帮我预防这种情况。非常简单: 定义一个单独的布尔变量(我们称之为“动画”),并在动画开始时将其设置为true。动画结束时,将其设置

考虑以下几点: 有一个面板(让它成为一个div元素),它的高度由悬停函数控制。唯一设置动画的css属性是“高度”。两个动画(鼠标悬停时+=500px;鼠标悬停时-=500px)的持续时间均为10秒。 你能想象这样的情景吗:在这20秒的时间里,你可以“不小心”将鼠标来回滚动至少10次

jquery所做的是记住所有发生的事情(用鼠标),并链接一长串不必要的动画

我需要你们帮我预防这种情况。

非常简单:

  • 定义一个单独的布尔变量(我们称之为“动画”),并在动画开始时将其设置为true。动画结束时,将其设置为false
  • 在鼠标出/鼠标入处理程序中,忽略设置动画==true时发生的任何事件
  • (可选):在动画完成处理程序中,检查鼠标是否位于正在监视的div上方或外部,并在必要时触发下一个动画 非常简单:

  • 定义一个单独的布尔变量(我们称之为“动画”),并在动画开始时将其设置为true。动画结束时,将其设置为false
  • 在鼠标出/鼠标入处理程序中,忽略设置动画==true时发生的任何事件
  • (可选):在动画完成处理程序中,检查鼠标是否位于正在监视的div上方或外部,并在必要时触发下一个动画 使用该方法停止动画

    使用它作为
    .stop(true,true)
    清除队列,并在新队列开始之前跳到末尾,尽管我不确定这是否是您想要的

    如果您的目的是允许动画完成,则使用和以及方法仅在动画当前未设置动画时运行动画

    这将防止队列中的堆积

    if( $(this).is(':not(:animated)') ) {
         // do the animation
    }
    
    使用该方法停止动画

    使用它作为
    .stop(true,true)
    清除队列,并在新队列开始之前跳到末尾,尽管我不确定这是否是您想要的

    如果您的目的是允许动画完成,则使用和以及方法仅在动画当前未设置动画时运行动画

    这将防止队列中的堆积

    if( $(this).is(':not(:animated)') ) {
         // do the animation
    }
    

    请指定“动画完成处理程序”@Birowski:我是指可以传递给任何jquery动画函数的可选回调函数。动画结束后将执行该操作。例如,在good idea中看到“complete”参数,最终的解决方案由两个答案组合而成:}您可以指定“animation completed handler”@Birowski:我的意思是可以传递给任何jquery动画函数的可选回调函数。动画结束后将执行该操作。例如,在good idea中查看“complete”参数,最终的解决方案由两个答案组合而成:}