JS延时判断,改善中国博客联盟展示导航自动点击的灵敏度

说到 JS 延时点击,度娘给出的结果几乎都是 js 的延迟点击 Demo,即鼠标产生一个 mousehover 事件之后,延迟多少秒执行点击动作。

本文主要分享一个带时间判断的 js 延时自动点击效果:当鼠标经过某页面元素,也就是产生一个 mousehover 事件时,触发 js 计时器,若经过指定时长后,鼠标还在这个元素上,将执行点击动作,否则计时器就清零,等待下一次的触发。

好了,说了一堆很费解的描述,一起来看下实际案例吧!

张戈研究这个 JS 特效的原因就是,博友 ijustplay 在我博客留言,说联盟的按钮太灵敏了,往往鼠标从浏览器标签页移动到联盟导航,想点击某个博客时,因为经过了导航的菜单,导致导航子页面的切换,体验不是很好。

这个问题,其实我在前期加入自动点击功能的时候就已经发现了,但是一直也没去理他,既然有成员反馈了,张戈还是非常重视的,于是新一轮的折腾开始了。

在我同事的指点下,终于实现了这个带判断的延时点击效果。

以下是示例代码:

<div id="myid">
<!-- 要延时点击的对象 -->
</div>
<script type="text/javascript">
  $(function(){
  var timeId = 0;
  var flag = true;
  $("#myid").mouseover(function(e){  //双引号内的值是第1行中的id
    flag = true;
    var target = e.srcElement||e.target;
    var timeId = setTimeout(function(){
    if(flag){
      target.click();
    }
  },168);  //168表示当鼠标持续hover168毫秒才执行点击动作,否则重置计时。
}).mouseleave (function(){
  flag = false;
  clearTimeout(timeId);
  });
});
</script>

使用很简单,基本看注释就会用了,只要记得修改实际元素 ID,并在代码之前引入 Jquery.js 即可。

目前,此功能已经应用到中国博客联盟的成员导航以及首页的分类菜单上。

效果:拖动鼠标自然经过成员导航的菜单按钮,是不会产生点击动作的,只有停留在菜单按钮才会生成点击动作。

Ps:经多次实际测试才得出最佳延时时间 168ms:既不会因为鼠标不经意通过导致误点,也不会因为延迟太久,给人很迟钝的感觉,此问题完美解决!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端杂货铺

关于首屏时间采集自动化的解决方案

关于首屏 首屏时间是指从转向该页面到屏幕中该页面所有内容都可见时的时间。已经有太多的关于首屏时间的计算,在本文中并不重复阐述这些已经被提出或者实现的方案,而旨...

67270
来自专栏速成应用小程序开发平台

新手教程--手把手教你从零开始制作一款电商必备的商城小程序

近年来,在电商、新零售趋势的影响下,实体零售商也都在谋求自身的渠道变革,完善消费体验。如今微信已有超过十亿的用户,市场巨大,而微信小程序的开通不仅能够降低品牌...

29520
来自专栏程序员的知识天地

2018前端工程师成长路线图

成为前端工程师,第一步应该是学习HTML/CSS/JavaScript,这是基础。

40520
来自专栏编程微刊

layer弹框在实际项目中的一些应用

24850
来自专栏我和我大前端的故事

2018 我所了解的 Vue 知识大全(一)

Vue ,React ,Angular 三大主流框架,最后我选择学习 Vue ,接触过 React ,自己感觉学习曲线有些陡峭,进而我选择了学习 Vue ,他的...

11430
来自专栏从零开始学 Web 前端

从零开始学 Web 之 HTML(一)认识前端

前端对于网站来说,通常是指网页,网站的前台部分包括网站的表现层和结构层。因此前端技术一般分为前端设计和前端开发。

14230
来自专栏Zchannel

Yu Writer:macos系统不可多得的Markdown写作工具

14420
来自专栏黑泽君的专栏

打造自己的博客园页面

刚接触博客园时,总有一种要定制打造自己博客页面的冲动,后来感觉原有的模板足够了(博客园提供了大量的模板),没有做这项工作。今天不太忙,稍微研究了下博客园的页面定...

23330
来自专栏河湾欢儿的专栏

html5标签

什么是html5? 仅仅是狭义的概念。h5草案前身叫做web application 由WHATWG组织编写,在2007年提交到了w3c,w3c起名叫做HTM...

42810
来自专栏葡萄城控件技术团队

Angular和Vue.js 深度对比

Vue.js 是开源的 JavaScript 框架,能够帮助开发者构建出美观的 Web 界面。当和其它网络工具配合使用时,Vue.js 的优秀功能会得到大大加强...

75730

扫码关注云+社区

领取腾讯云代金券