在很多PC端网站上,会有鼠标滑过nav展示二级菜单的需求,这种情况用slidedown和slideup是比较符合的。

如果是点击事件的话,是比较简单的,但是在鼠标滑过的问题上,要稍微复杂一点。

在于mouseenter和mouseover上,建议用mouseenter。

mouseenter的选定区域是本元素,而mouseover也会包括它的子元素区域。

mouseenter所对应的为mouseleave。

下面说一个实例。

    <nav class="pc_nav left"><ul class=""><li class="nav_li"><a href="index.html" class="nav_a">首页</a></li><li class="nav_li "><a href="product.html" class="nav_a">全系产品</a><ol class="setNav"><li><a href="singleProduct.html">主网络交换机</a></li><li><a href="router.html">路由器</a></li><li><a href="#">全系产品</a></li></ol></li><li class="nav_li"><a href="Integration.html" class="nav_a">集成与运维</a><ol class="setNav"><li><a href="#">集成与运维</a></li><li><a href="#">集成与运维</a></li><li><a href="#">集成与运维</a></li></ol></li><li class="nav_li"><a href="solve.html" class="nav_a">解决方案</a><ol class="setNav"><li><a href="#">解决方案</a></li><li><a href="#">解决方案</a></li><li><a href="#">解决方案</a></li></ol></li><li class="nav_li actives"><a href="about.html" class="nav_a">关于英迈</a><ol class="setNav"><li><a href="ingramTeam.html">英迈团队</a></li><li><a href="#">关于英迈</a></li><li><a href="#">关于英迈</a></li></ol></li><li class="nav_li"><a href="news.html" class="nav_a">新闻资讯</a><ol class="setNav"><li><a href="#">新闻资讯</a></li><li><a href="#">新闻资讯</a></li><li><a href="#">新闻资讯</a></li></ol></li><li class="nav_li"><a href="contact.html" class="nav_a">联系我们</a><ol class="setNav"><li><a href="#">联系我们</a></li><li><a href="#">联系我们</a></li><li><a href="#">联系我们</a></li></ol></li></ul><div class="clear"></div></nav>
.nav_li {float: left;position: relative;padding: 0 38px;
}.nav_li .nav_a {color: #555555;font-size: 18px;
}.nav_li .setNav {position: absolute;top: 110px;width: 150px;left: 50%;margin-left: -75px;background: #fff;display: none;z-index: 100;
}.nav_li .setNav a {display: block;color: #00a0e6;transition: all 0.3s;font-size: 16px;line-height: 20px;padding: 10px 0;text-align: center;
}.nav_li .setNav a:hover {background: #00a0e6;color: #fff;
}
$('.pc_nav').on('mouseenter','.nav_li',function(){$(this).addClass("active");$(this).find('.setNav').stop(true,true).slideDown(400);}).on('mouseleave','.nav_li',function(){$(this).removeClass("active");$(this).find('.setNav').stop(true,true).slideUp(400);});

stop() 是必须要写的,否则就会出现鼠标多次滑过目录,而导致在鼠标离开目录后还会执行很多次动画,

而我想要的是鼠标离开后动画停止,在我再次滑过的时候再执行动画,所以需要在动画开始和结束时都结束一下此动画。

之前写的js是没有红字的true的,偶尔会出现多次滑动之后 slidedown 的元素高度会变得越来越小,这个原因我暂时还不知道。

但是在查阅资料之后找到了这个解决方法。在stop()方法里添加 true 这个参数。

W3School上是这样的说明的:stop(stopAll,goToEnd);

在我看来 第一个参数表示停止当前元素的动画还是所有元素的动画,根据需求我需要的是停止所有动画,所以第一个参数为true。

第二个参数是表示当前动画要不要执行完毕后停止,我也选择了true,让动画执行完毕后在关闭,避免动画执行到一般停止,自我认为这样展示会更顺眼一些。

此为我第一篇博客,首要意义在于总结,次要在于分享。

slidedown和slideup 的重复滑动问题相关推荐

  1. 51 jQuery-使用slideDown()与slideUp()方法实现滑动效果

    1.效果图 2.HTML代码 <!DOCTYPE html> <html> <head><meta charset="utf-8"> ...

  2. 问题:jq中只有slideDown()和slideUp()或者slideToggle(),想要左右滑动怎么办

    闲话2 Q:jq中只有slideDown()和slideUp()或者slideToggle(),想要左右滑动怎么办 A:slideToggle()的原理就是通过改变元素的高度使得元素由上至下或反之进行 ...

  3. jQuery 效果 - 滑动 slideDown()与slideUp()与slideToggle()

    jQuery 滑动方法可使元素上下滑动. jQuery slideDown() 方法用于向下滑动元素.     $(selector).slideDown(speed,callback);     可 ...

  4. jQuery 效果 - 滑动 slideDown,slideUp,slideToggle的使用

    //slideDown() 方法用于向下滑动元素 $(document).ready(function(){$(".flip").click(function(){$(" ...

  5. 利用css3实现jQuery中的slideDown和slideUp效果

    最开始想要实现一个菜单从上向下滑出的效果,采用transition: translate 0.5s ease-in;总是觉得别扭的很,无意间看到小米官网的二级菜单从上向下滑出的效果,顿时觉得这样就不会 ...

  6. # vue+JavaScript实现slideDown与slideUp效果

    vue+JavaScript实现slideDown与slideUp效果 整段代码如下代码片. // An highlighted block <template><div style ...

  7. jQuery之动画系列(show、hide、fadeIn、fadeOut、fadeToggle、fadeTo、slideDown、slideUp、slideToggle)

    文章目录 show 和 hide fadeIn 和 fadeOut fadeToggle fadeTo slideDown 和 slideUp slideToggle show 和 hide < ...

  8. JQuery: slideDown与slideUp

    HZY SlideDown和slideUp是JQuery中的方法 SlideDown是通过高度变化(向下增大)来动态地显示所有匹配的元素 SlideDown有三个参数 speed:动画时长的毫秒数值 ...

  9. JS实现slideDown()和slideUp()效果

    JS实现slideDown()和slideUp()效果 这两天在写一个小Demo,页面顶部需要实现webAPP那种将导航收起,通过按钮点击显示与隐藏的效果.实现过程中也花费时间挺久的,现在单独将这部分 ...

最新文章

  1. java动态sql执行数据
  2. 从php+mysql环境的注入,到整台服务器的沦陷
  3. 深入理解Java内存模型(七)——总结
  4. Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot b
  5. phpcms v9前台getshell
  6. 上计算机课的心得体会作文,计算机学习心得体会范文
  7. 百度影棒1刷成Android系统,百度影棒2S最简单的刷机方法
  8. 2016计算机cpu,2016年12月电脑CPU天梯图一览
  9. 用mysql查找姓王的行为轨迹_mysql查询
  10. R语言操作pdf文档
  11. 疫情使我被迫躺平,接下来该何去何从
  12. c语言 字符串 正序再倒序_MySQL - 字符串索引优化
  13. 论文研究记录----数据整理
  14. ieee be matlab,802.11a-OFDM-MATLAB IEEE 系统级仿真完整程序,包含发送端,接收端以及信道建模等 270万源代码下载- www.pudn.com...
  15. 2011年最新企业offer(待遇)比较(已知148家)
  16. 学术论文中通讯作者与第一作者有什么区别?
  17. 30分钟!用Django做一个迷你的Todolist!上篇!
  18. Python进阶-----面向对象2.0(特有属性和方法与私有属性和方法)
  19. 数据分析--数据清洗详解流程
  20. Linux系统磁盘分区

热门文章

  1. mysql add column_MySQL ADD COLUMN
  2. UGUI中的Canvas、Camera和Canvas Scaler
  3. 批处理调用cacls修改文件权限
  4. 站在人生的十字路口我该何去何从
  5. lcm [师大集训 Day8]
  6. 苹果开发账号申请、证书生成
  7. Java虚拟机启动过程解析
  8. zip分卷压缩linux命令,linux下zip分卷压缩及linux下zip分卷解压
  9. 2023张雪峰老师推荐的10大高薪专业,计算机专业仍然屠榜
  10. EvolveGraph翻译