jquery 导航菜单下拉效果实现示例

在懒人图库中下载了一段jquery的导航菜单代码,使用中发现当鼠标频繁移入移出刚刚打开的菜单时下拉效果会频繁不断的执行,直到执行完刚刚所进行的移入次数。这样就导致动画效果与鼠标动作不一致,效果体验相当不好。查阅jquery帮助文档后发现stop()可以停止执行的动画。

stop()定义和用法:
 
stop(stopAll,goToEnd) //方法停止当前正在运行的动画。
 
//stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
//goToEnd 可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。
我选择了使用stop(false, true),在鼠标移出时停止了动画。但是效果不理想,因为菜单的下拉和收起设置了动画效果,stop后收起的动画消失了。。

再次查阅jquery帮助文档后终于发现了is(":animated")这个小东西来判断元素动画状态。那么我们就可以这样实现:如果鼠标移入时当前元素没有动画效果我们再添加下拉动画。

ok,效果很理想,以下是相关判断代码:

if($(this).find('ul').is(":animated")==false){    //判断元素是否正处于动画状态,如果当前没有进行动画,则添加新动画

 
         $(this).find('ul').slideDown("normal");  //(ms 1500)"slow","normal","fast"
    
     }

例子:

html代码:
 

 代码如下 复制代码
 <li class="skylevel"><a href="#" target="_blank">日志</a>
    <ul>
    <li><a href="#" target="_blank">小调子</a></li>
    <li><a href="#" target="_blank">两句话</a></li>
    <li><a href="#" target="_blank">网摘</a></li>
    </ul>
    </li>
   
    <li class="skylevel"><a href="#" target="_blank">业界</a>
    <ul>
    <li><a href="#" target="_blank">站长</a></li>
    <li><a href="#" target="_blank">电商</a></li>
    <li><a href="#" target="_blank">移动</a></li>
    <li><a href="#" target="_blank">其它</a></li>
    </ul>
    </li>

 
 
 jq代码:
 
 

 代码如下 复制代码
$(document).ready(function(){
 
  $('li.skylevel').mousemove(function(){
 if($(this).find('ul').is(":animated")==false){    //判断元素是否正处于动画状态,如果当前没有进行动画,则添加新动画
 
         $(this).find('ul').slideDown("normal");  //(ms 1500)"slow","normal","fast"
    
     }
 
  });
 
 
  $('li.skylevel').mouseleave(function(){
  $(this).find('ul').slideUp("normal");
  });
 
});
时间: 2024-10-24 01:22:48

jquery 导航菜单下拉效果实现示例的相关文章

jquery实现盒子下拉效果示例代码_jquery

复制代码 代码如下: <script src="js/Jquery1.7.js"></script> <script type="text/javascript"> $(function () { $('div:eq(1)').css({ 'margin-top': '-=100px' }); $('div:first').mouseover(function () { $('div:eq(1)').animate({'margi

jquery 竖向二级下拉导航菜单

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery 竖向二级下拉导航菜单<

jQuery实现简单下拉导航效果_jquery

本文实例讲述了jQuery实现简单下拉导航效果.分享给大家供大家参考.具体如下: 这里粗略做一款基于jquery的下拉导航菜单效果,我觉得挺不错,虽然没有怎么美化,但是代码易懂,另外修补的空间也比较大,相信对学习CSS以及jquery的朋友有不小的帮助. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-xl-down-show-nav-codes/ 具体代码如下: <!DOCTYPE HTML> <html> <

jquery顶部固定层下拉导航

最近有人在论坛里讨论怎么制作导航菜单!我关注了一下,这里就写了一个简单的demo.供大家参考.代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"

jquery pop弹出层下拉效果实现

jquery pop弹出层下拉效果实现 注:本文章末提供jquery文件,自己下载一个就可以了. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

jquery无限级联下拉菜单简单实例演示_jquery

本文实例讲述了jquery无限级联下拉菜单代码以及jquery无限级联下拉菜单实现思路.分享给大家供大家参考.具体如下: 最终效果图: 因为是级联,所以数据必须是树型结构的,这里的测试数据如下: 看下效果图: 1.效果图一:   2.效果图二:   3.效果图三:     由图可知,下拉框的个数并不是写死的,而是动态加载的.每当下拉框选择改变的时候,会发送一次ajax请求,请求成功返回json格式数据,当返回的数据不为空时(即有子节点时),则会向页面中添加一个下拉框,没有则不添加. 插件的实现代

jquery 无限极下拉菜单的简单实例(精简浓缩版)_jquery

jquery 无限极下拉菜单的简单实例(精简浓缩版) <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title> www.jb51.net</title> <script type="

jquery实现多级下拉菜单的实例代码_jquery

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>jquery实现多级下拉菜

用jQuery模拟select下拉框的简单示例代码

 本篇文章主要是对用jQuery模拟select下拉框的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮.这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition