gpt4 book ai didi

许多元素上的jquery队列

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:47 25 4
gpt4 key购买 nike

我有一个列表导航。子导航是隐藏的,应该在鼠标悬停时显示。 (我试过 mouserover、mouseenter 和 hover..)

没有一个真正有效。问题是,它在跳跃。如果我快速将鼠标悬停在所有元素上,它们都想上下滑动,那就太丑了。

所以我尝试对元素进行排队,以查看动画(向下或向上滑动)是否完成以显示下一个。现在队列总是指向第一个列表项。

如何正确使用 queue() 来查看所有元素的一个队列?

或者最好的方法是什么?唯一必须的是:它必须是一个 slideDown。仅仅设置 display:block 或 hidden 看起来不够好...

the fiddle is here

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<style type="text/css">

ul.main-nav {
margin: 0; padding: 0;
text-align: center;
}
ul.main-nav li.main-nav {
width:111px;
height:35px;
list-style: none;
float: left;
position: relative;
padding: 10px 15px 20px 14px;
margin:0 0 0 1px;
}
ul.main-nav li.main-nav ul.icon.subnav {
position: absolute;
width:140px;
padding-bottom:0px;
text-align: left;
display: none;
}
ul.main-nav li.main-nav ul.subnav li {
float: none;
display: block;
border-bottom:1px solid #434343;
}
ul.main-nav a {
display:block;
}
ul.main-nav ul.subnav li a {
padding: 8px 5px 8px 10px;
}
</style>
<span class="queue"></span>
<ul class="main-nav">
<li class="main-nav active">
<a class="main-nav" href="#">main-nav-1</a>
<ul class="icon subnav">
<li><a href="#">subnav 1</a></li>
<li><a href="#">subnav 2</a></li>
<li><a href="#">subnav 3</a></li>
<li><a href="#">subnav 4</a></li>
</ul>
</li>
<li class="main-nav">
<a class="main-nav" href="#">main-nav-2</a>
<ul class="icon subnav">
<li><a href="#">subnav 1</a></li>
<li><a href="#">subnav 2</a></li>
<li><a href="#">subnav 3</a></li>
<li><a href="#">subnav 4</a></li>
</ul>
</li>
<li class="main-nav">
<a class="main-nav" href="#">main-nav-3</a>
<ul class="icon subnav">
<li><a href="#">subnav 1</a></li>
<li><a href="#">subnav 2</a></li>
<li><a href="#">subnav 3</a></li>
<li><a href="#">subnav 4</a></li>
</ul>
</li>
<li class="main-nav">
<a class="main-nav" href="#">main-nav-4</a>
<ul class="icon subnav">
<li><a href="#">subnav 1</a></li>
<li><a href="#">subnav 2</a></li>
<li><a href="#">subnav 3</a></li>
<li><a href="#">subnav 4</a></li>
</ul>
</li>
<div class="clear"></div>
</ul>



<script>
$(document).ready(function() {
var subnav = $("ul.subnav");
function showIt() {
var n = subnav.queue("fx");
$("span.queue").text( n.length );
setTimeout(showIt, 20);
}
showIt();


$('li.main-nav').hover(function () {
$(this).children('ul').slideDown(600,function(){});
},function () {
$(this).children('ul').slideUp(600,function(){});
});

});
</script>
</body>
</html>

帮助将不胜感激。非常感谢您的查看和回答以及任何建议。

最佳答案

添加.stop()会阻止动画继续
已更新

$('li.main-nav').hover(function () {
$(this).children('ul').stop().slideToggle(600);
});

关于许多元素上的jquery队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com