繁体   English   中英

悬停菜单jQuery上下滑动太快

[英]hover menu jquery slide up and down too fast

我做了这个悬停菜单,但是这是我的jQuery代码的错误

  $("#right_side li").mouseenter(function(e) {

        $(this).children('ul').stop(true,true).slideDown();

    });
    $(this).stop();
    $("#right_side li").mouseleave(function(e) {
        $(this).children('ul').stop(true,true).slideUp();

    });

这是我的PHP代码

function menu($li)
{
   echo "<ul class='hovermenu'>";
        $result = mysqli_query($li, "SELECT * FROM `categories` WHERE 1") or die(mysqli_error($li));

    while ($Row = mysqli_fetch_array($result)) {
        echo "<li class='cat'><div class='cat_div' ><a href='index.php?cat=".$Row['catid']."'>"  . $Row['catname'] . "</a></div><ul class='sub'>";
                                $result2 = mysqli_query($li, "SELECT * FROM `brand` WHERE catid=".$Row['catid']."") or die(mysqli_error($li));
                    while ($Row2 = mysqli_fetch_array($result2)) {
                    echo "<li><a href='index.php?brand=".$Row2['id']."&cat=".$Row['catid']."'>"  . $Row2['name'] . "</a></li>";
                                        }
                echo"</ul></li>";
                }

echo "</ul>";
}

我的问题是,当我的mouseleave和我的mousein太快时,我的菜单上下滑动得太快了,请帮忙meeeee !!!

将速度添加到您的slideUp呼叫中,例如“慢”

slideUp("slow")

您还可以使用毫秒为单位的值。

您可以简单地以毫秒为单位添加一个时间,例如slideUp(1000)或slideDown(300)或slideDown(“ fast”)或slideUp(“ slow”)希望对您有所帮助。

您可以将脚本更改为此脚本,并让我知道问题是否已解决。

$("#right_side li").on({
    mouseenter: function(){
        $(this).children('ul').stop().slideDown();
    },
    mouseleave: function(){
        $(this).children('ul').stop().slideUp();
    }
});

当向上/向下滑动的元素没有设置高度时,jQuery slideUp / slideDown函数存在一个已知问题。 确保要隐藏的元素具有指定的高度。

另外,最小高度css属性将使事情变得混乱。 从元素中删除最小高度。

参考:

https://forum.jquery.com/topic/slideup-slow-and-slidedown-slow-happening-instantly

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM