gpt4 book ai didi

jquery - 除非达到 jQuery 例程中定义的悬停时间,否则如何防止 CSS 悬停样式触发?

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

我有一个 CSS 下拉菜单,它使用 jQuery 鼠标悬停延迟,以防止在用户只是将鼠标移动到页面上的另一个链接时显示菜单。

我的问题是 css 悬停正在触发,这会改变鼠标悬停时事件 li 的样式。

有没有办法阻止 CSS 悬停样式触发,除非达到 jQuery 例程中定义的悬停时间? (用户故意使用菜单)

我尝试使用 CSS animation: 和 animation-delay: 但无法使其正常工作,这就是我使用 jQuery 例程的原因。

代码示例在这里:http://jsfiddle.net/2fc3W/7/

我的 CSS:

.pipe {
margin-top:4px;
}
.li_hover {
color: #002398;
}
.bottom_li {
margin-bottom:6px;
margin-top:2px;
}
ul#nav li .bottom_li:hover > a {
background:#E0E0E0;
}
ul#nav, ul#nav ul {
width:300px;
list-style:none;
margin:0;
padding:0;
position:absolute;
z-index:9;
border:1px solid #297BCE;
}
ul#nav li li:hover > a {
border:none;
}
ul#nav li {
position:relative;
float:left;
zoom:1;
/*Needed for IE*/
}
ul#nav li:hover > a {
background:#E0E0E0;
color:#297BCE;
border-left:1px solid #297BCE;
border-right:1px solid #297BCE;
border-top:1px solid #E0E0E0;
border-bottom:1px solid #E0E0E0;
text-decoration:underline;
}

#nav li.is-active > ul {
display: block;
}
ul#nav li a {
border:1px solid #FFFFFF;
display:block;
padding:4px 6px 4px 6px;
color:#297BCE;
font-weight:bold;
font-family:Arial, Times New Roman, Tahoma;
font-size:13px;
text-decoration:none;
}
ul#nav ul {
padding-left:8px;
padding-top:2px;
display:none;
position:absolute;
width:150px;
border:1px solid #297BCE;
background:#E0E0E0;
left:0;
border-top:none;
}
ul#nav ul li {
background:#E0E0E0;
color:#000;
border:none;
float:none;
}
ul#nav ul li a {
border:none;
width:100%;
padding:0;
display:block;
color:#000000;
line-height:145%;
font-size:12px;
font-weight:normal;
}
ul#nav ul li a:hover {
border:none;
width:150px;
color:#297BCE;
}
ul#nav ul ul {
position: absolute;
top: 0;
left: 100%;
margin-left:-3px;
display: none;
}
ul#nav ul ul {
padding-left:8px;
position:absolute;
width:150px;
border:1px solid #297BCE;
background:#E0E0E0;
}
ul#nav ul li:hover ul {
display: block;
}
ul#nav ul.snug{
width: auto;
}
ul#nav ul.snug li a{
display: inline;
padding-right: 6px;
width: auto;
}

我的Javascript:

var hoverTimer = function ( menu ) {
return setTimeout(function() {
$(menu).addClass('is-active');
}, 500);
},
hover = null,
$nav = $( '#nav > li' );

$nav.mouseenter(function() {
hover = hoverTimer(this);
});

$nav.mouseleave(function() {
clearTimeout(hover);
$nav.removeClass( 'is-active' );
});

我的 HTML:

<div id="menubar">
<ul id="nav">
<li><a href="/ueber_uns.htm">About Us</a>
<ul>
<li><a href="#">Who We Are</a></li>
<li><a href="#">Our Goals</a></li>
<li><a href="#">Our Team</a></li>
<li><a href="#">Press</a>
<ul>
<li><a href="#">2006</a></li>
<li><a href="#">2007</a></li>
<li><a href="#">2008</a></li>
</ul>
</li>
<li><a href="#">Impressum</a></li>
<li class="bottom_li"><a href="#"><span class="li_hover">See all</span></a></li>
</ul>
</li>
<li class="pipe">|</li>
<li><a href="/ueber_uns.htm">About Us</a>
<ul>
<li><a href="#">Who We Are</a></li>
<li><a href="#">Our Goals</a></li>
<li><a href="#">Our Team</a></li>
<li><a href="#">Press</a>
<ul>
<li><a href="#">2006</a></li>
<li><a href="#">2007</a></li>
<li><a href="#">2008</a></li>
</ul>
</li>
<li><a href="#">Impressum</a></li>
<li class="bottom_li"><a href="#"><span class="li_hover">See all</span></a></li>
</ul>
</li>
<li class="pipe">|</li>
<li><a href="/ueber_uns.htm">About Us</a>
<ul>
<li><a href="#">Who We Are</a></li>
<li><a href="#">Our Goals</a></li>
<li><a href="#">Our Team</a></li>
<li><a href="#">Press</a>
<ul>
<li><a href="#">2006</a></li>
<li><a href="#">2007</a></li>
<li><a href="#">2008</a></li>
</ul>
</li>
<li><a href="#">Impressum</a></li>
<li class="bottom_li"><a href="#"><span class="li_hover">See all</span></a></li>
</ul>
</li>
</ul>
</div>

感谢您在正确方向上指导我的任何建议。

最佳答案

尝试将您的事件类添加到您的 css 中,例如:

ul#nav li.is-active:hover > a {
background:#E0E0E0;
color:#297BCE;
border-left:1px solid #297BCE;
border-right:1px solid #297BCE;
border-top:1px solid #E0E0E0;
border-bottom:1px solid #E0E0E0;
text-decoration:underline;
}

#nav li.is-active > ul {
display: block;
}

ul#nav ul li.is-active a:hover {
border:none;
width:150px;
color:#297BCE;
}

ul#nav ul li.is-active:hover ul {
display: block;
}

fiddle here

关于jquery - 除非达到 jQuery 例程中定义的悬停时间,否则如何防止 CSS 悬停样式触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313817/

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