ClearTimeout消除闪动实例代码


Posted in Javascript onFebruary 29, 2016

定义和用法

clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。

语法

clearTimeout(id_of_settimeout)

参数 描述
id_of_settimeout 由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。

需求:当鼠标放到父级菜单上面的时候,显示下方的子菜单。鼠标从子菜单或者父级菜单上面移开的时候,子菜单要收起来。最终效果如下:

ClearTimeout消除闪动实例代码

PS:这样需求很常见,最常见的做法是li元素下面再嵌套一个Ul元素来包含子元素。这种做法用css就可以完全控制。但今天这个子菜单和导航栏是分开的。即到鼠标到产品上面的时候显示header-tags块。

<ul class="header-nav">
<li class="nav-item home"><a href="@Url.Action("Index", "Home")">首页</a></li>
<li class="nav-item products" id="header_tags">
<a href="#">产品<span class="icon-caret-down"></span></a>
....
</li>
</ul>
<div class="header-tags">
<ul>
<li>
<img class="screening-img-normal" src="~/Content/static/all.png">
<img class="screening-img-hover" src="~/Content/static/all1.png">
<p>全部</p>
</li>
<li tagid="4">
<img class="screening-img-normal" src="~/Content/static/shafa.png">
<img class="screening-img-hover" src="~/Content/static/shafa1.png">
<p>沙发</p>
</li>
<li tagid="3">
<img class="screening-img-normal" src="~/Content/static/zuoyi.png">
<img class="screening-img-hover" src="~/Content/static/zuoyi1.png">
<p>座椅</p>
</li>
....
</div>

这无法用css完全控制(hover只能控制子元素或兄弟元素)。

/*父子*/
#a:hover #b{display: block} 
/*兄弟*/
#a:hover + #b{display: block}

上面的情况就要用脚本了。这里涉及到#header_tags和.header-tags两个元素的移入移出。当鼠标移入#header_tags,.header-tags显示,当鼠标再移入.header-tags的时候不能立即触发#header_tags的moveout事件,而要保持tags继续显示。只有到鼠标从#header_tags和.header-tags离开后没有再进入才会把子菜单收起来。

$(function () {
var tagsTime;
$(document).on('mouseover mouseout', '#header_tags', function(event){
var $headerTagsBox = $('.header-tags');
if (event.type == 'mouseover') {
clearTimeout(tagsTime);
$headerTagsBox.slideDown(300);
}
else if (event.type == 'mouseout') {
tagsTime = setTimeout(function(){
$headerTagsBox.slideUp(200);
}, 200);
}
});
$('.header-tags').hover(function(){
clearTimeout(tagsTime);
},function(){
var $me = $(this);
tagsTime = setTimeout(function(){
$me.slideUp(200);
}, 200);
}); });

如果这里没有清除定时器和加上延时执行,导航栏就会不断的闪动。根本无法点击。

Javascript 相关文章推荐
Javascript 静态页面实现随机显示广告的办法
Nov 17 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
jQuery实现布局高宽自适应的简单实例
May 28 Javascript
简单的JS轮播图代码
Jul 18 Javascript
web前端vue之vuex单独一文件使用方式实例详解
Jan 11 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
详解js实时获取并显示当前时间的方法
May 10 Javascript
javascript随机变色实例代码
Oct 15 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 #Javascript
jquery trigger函数执行两次的解决方法
Feb 29 #Javascript
理解js回收机制通俗易懂版
Feb 29 #Javascript
jquery trigger实现联动的方法
Feb 29 #Javascript
基于Javascript实现返回顶部按钮
Feb 29 #Javascript
JavaScript实现斗地主游戏的思路
Feb 29 #Javascript
jQuery取消特定的click事件
Feb 29 #Javascript
You might like
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php Smarty 字符比较代码
2011/02/27 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
用Python实现数据的透视表的方法
2018/11/16 Python
Python3 翻转二叉树的实现
2019/09/30 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
施工人员岗位职责
2013/12/12 职场文书
小学新教师培训方案
2014/02/03 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
变长双向rnn的正确使用姿势教学
2021/05/31 Python