javascript - 是否可以轻松地将 jquery/javascript 鼠标悬停延迟添加到仅 css 下拉菜单?

标签 javascript jquery

是否可以使用 jquery 或 javascript 例程向纯 css 下拉菜单添加鼠标悬停延迟(以免在将鼠标移动到页面上的另一个链接位置时打扰用户)?

我在本网站和 google 上搜索过的大多数 Material 都建议使用 jquery 或 javascript 类型菜单。如果可能的话,我想保留纯 CSS 菜单,主要用于搜索引擎 SEO 目的。

我尝试向我的“div”和顶级“ul”添加一些 jquery 超时例程,但没有成功。

代码链接:http://jsfiddle.net/2fc3W/1/

我的 CSS 是:

<style type="text/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;}
ul#nav li:hover > 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;}
</style>

我的 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>

感谢您为我指明正确方向的建议。

最佳答案

这是 JavaScript/jQuery 版本:http://jsfiddle.net/tjfogarty/2fc3W/3/

CSS 版本:http://jsfiddle.net/tjfogarty/2fc3W/4/

注意,我只是使用了 -webkit- 动画 vendor 前缀。此外,您还必须注意 CSS 动画的浏览器兼容性。

-webkit-animation: showNav 0.4s forwards;
-webkit-animation-delay: 0.5s;

关于javascript - 是否可以轻松地将 jquery/javascript 鼠标悬停延迟添加到仅 css 下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15304445/

相关文章:

javascript - 如何在 Ember 中使用 jsTree 插件

javascript - HTML 符号代码在输入字段中无法正常工作

javascript - Tampermonkey 脚本未运行 jquery

php - jQuery根据表单ID序列化表单更新MySQL?

javascript - React Native borderRadius 一个 Angular 不圆

javascript - CognitiveServices POST 响应 : data. hasOwnProperty 对于使用原始 JS 的嵌套 JSON 对象的根以外的所有对象均失败

javascript - 在页面加载时隐藏一个div,然后在单击按钮时取消隐藏

javascript - jQuery Datatables Ajax Call 在第一次运行后被破坏

jquery - 谷歌地图 + jQuery

javascript - 重定向到另一个页面并通过 JavaScript 传递参数