jquery .stop() 在每次悬停时降低 div 的高度

标签 jquery html css

我制作了一个翻转菜单并使用 jquery 停止方法来防止当有人频繁进入和离开时出现的闪烁效果。但是在应用 jquery 停止方法并频繁执行 mouseenter 和 mouseleave 之后,主菜单的高度保持不变随着每次鼠标离开和重新进入操作而减少。这有点奇怪,我无法发现问题。

   $("#menu_container").on('mouseenter',function(){
        $("#lmenu").stop().slideDown(250);

    });

   $("#menu_container").on('mouseleave',function(){
     $("#lmenu").stop().slideUp(250);
   }); 

最佳答案

代替 .stop() 通常对我来说没有任何问题,还有另一种选择:检查动画完成

代码

var hov = $("#menu_container");
var shw = $("#lmenu");
hov.on('mouseenter',function(){
    if(!shw.is(':animated'))
    shw.slideDown(250);

});

hov.on('mouseleave',function(){
    shw.slideUp(250);
});

Demo Fiddle

关于jquery .stop() 在每次悬停时降低 div 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728080/

相关文章:

javascript - 为什么在滚动筛选表数据时 Html 表行滚动中断

html - 将输入元素和标签对齐到两个单独的列中

javascript - 输入和下拉有不同的值

jquery - jQuery 模糊代码影响整个 block

javascript - 视频弹出模式关闭时在后台播放

javascript - 当某个 div 悬停时获取正确的段落以显示

javascript - 模板无法使用 Backbone.js 加载

html - 删除 Twitter 小部件周围的边框

php - undefined _post 使用图像作为提交

css - 无法使用 rails helpers image_tag 或 image_path 在 Google map 上显示本地镜像图标