扫码关注官方订阅号
这个问题不太好表达,类似于SF的标签元素,鼠标在其上停滞一两秒才开始发起请求而如果是很快的划过则不动作。我用的是mouseover和mouseleave,但貌似实现不了这效果,大家是怎么实现的?
欢迎选择我的课程,让我们一起见证您的进步~~
我没有发现 SF 的标签元素有延迟动作啊……
不过如果你想实现的话,可以在 mouseover 和 mouseleave 事件里处理。mouseover 事件里用一个 setTimeout 延迟触发,记录下返回的 timerId,之后在 mouseleave 里用 clearTimeout 把延迟处理取消掉(如果还没触发的话)
mouseover
mouseleave
setTimeout
timerId
clearTimeout
代码大概就像这样(仅示意)
// 通过一个闭包来封闭 timerId 变量,使之不被外界访问到 (function(node) { var timerId = 0 node.onmouseover = function() { clearTimeout(timerId) timerId = setTimeout(function() { // 这里是你想做的事情,延迟500毫秒触发 }, 500) } node.onmouseleave = function() { clearTimeout(timerId) } })(domNode /* 要触发相关事件的DOM元素 */)
刚注册了账号在 jsfiddle 上写了段代码试验
http://jsfiddle.net/jamesfancy/751s4m9x/2/
CSS3 transition
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我没有发现 SF 的标签元素有延迟动作啊……
不过如果你想实现的话,可以在
mouseover
和mouseleave
事件里处理。mouseover
事件里用一个setTimeout
延迟触发,记录下返回的timerId
,之后在mouseleave
里用clearTimeout
把延迟处理取消掉(如果还没触发的话)代码大概就像这样(仅示意)
刚注册了账号在 jsfiddle 上写了段代码试验
http://jsfiddle.net/jamesfancy/751s4m9x/2/
CSS3 transition