使元素的悬停效果只持续有限的时间
Make hover effect on element last only limited time
在我的笔:http://codepen.io/explicit_concept/pen/BLgoVG有一个脚本,触发规模/背景颜色的变化。icon元素只在整个。devicediv的第一次悬停。如何使效果是触发悬停仅持续3秒,例如?
我已经看到它是由doTimeout jQuery插件完成的,但为了学习,我想从头开始。
是否应该在鼠标悬停时使用setTimeout来添加类到元素中,然后当计时器完成时撤消。addclass ?
这是hover的jQuery代码:
$(document).ready(function () {
$('.device').one('mouseenter',function() {
$(this).find('.icon').addClass('icon-hovered');
});
$('.device').mouseleave(function() {
$('.icon').removeClass('icon-hovered');
});
setTimeout(() => {
$(this).find(".icon").removeClass("icon-hovered")
}, 3000); // time in milliseconds
在您的mouseenter
监听器将工作
jsFiddle: https://jsfiddle.net/wxmc3qks/1/
在mouseleave
事件上只使用javascript函数setTimeout
。jQuery的delay
函数只用于动画延迟,没有函数。
$(function() {
$('.button').on('mouseenter', function() {
$(this).addClass('hovered');
});
$('.button').on('mouseleave', function() {
var $this = $(this);
setTimeout(function() {
$this.removeClass('hovered');
}, 3000);
});
});
相关文章:
- 存在每个时间元素的javascript事件
- Angular Datetimepicker:指令'的模板;uib时间选择器'必须只有一个根元素
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 使一个新元素在某个时间出现
- 如何将日期和时间拆分为两个元素
- 添加时间数组的元素
- 如何为动画持续时间较短的元素制作连续动画's[GASP]
- 增加在选择元素HTML中搜索的时间
- 在有限的时间内暂时禁用元素/图像的实时点击
- 无法让悬停事件使用 jQuery UI 持续时间参数或 CSS 处理目标元素的同级元素
- 如何使用 SetTimeout,根据动态追加时间删除动态追加的元素
- ng-hide 元素出现一段时间,然后隐藏
- 如何从音频上下文元素收集时间值
- for 循环元素的执行时间比内部 AJAX 调用可以响应的要快
- 将时间元素添加到javascript数组中
- 扩展时钟组件的角度指令以单独显示日期时间元素
- 每次播放音频剪辑的时间元素被添加到SVG——d3.js
- 用Javascript更新时间元素
- 自动时间元素js
- 用javascript分隔时间元素