【发布时间】:2017-11-03 20:45:31
【问题描述】:
我看过一些关于页面加载后交互延迟的类似帖子,但我似乎找不到任何关于经典 a:hover 禁用的信息。
问题在于 JS 的加载速度很可能比 CSS 慢,而修改 CSS 并不能解决这个问题。
情况
我有一个主页动画。在页面加载时,我有一堆从左侧进入的图像和一个从右侧进入的绝对锚标签的 div(每行约 2 个案例),它们在中间滑动和相遇。页面加载后,我设置了一个计时器来遍历图像堆栈,并突出显示相应的锚标记。
问题在于,当用户将鼠标悬停在任何锚点标签上时,此计时器会被破坏,并且当这种情况发生时,相应的图像会淡入。并且这种交互可能正好在页面加载时。
有什么方法可以在页面加载/延迟时禁用 锚定标签 a:hover?
我的尝试
我不能简单地删除 a:hover 类并将其替换为另一个 background-color:transparent,因为我的 JS 仍然选择 onHover 函数(我可能只针对该更改的类定位 onHover ..)
当不小心将鼠标悬停在鼠标输入上时,我可以在页面加载时定位每个锚标记:
//on page load, disable mouse-over ability on anchor tags
var disableOnLoad = function (ev) {
var target = $(ev.target);
var casesId = target.attr('id');
//if mouse is over one of the cases
if (target.is(".cases")) {
//disable CSS a:hover
$(this).removeClass('homeText a:hover');
}
}
我可以尝试的另一件事是调用 setTimeOut(function(){ onHover()) 以便有延迟,但这也会在页面加载后生效。
有什么建议吗?
【问题讨论】:
-
为什么不默认禁用悬停功能,然后在页面加载后启用它?
-
在您的图像加载之后或之后,正如您所说的那样,无论如何您都在监控该进度。
-
在图像初始幻灯片下方的 document.ready 上调用它之前,它会被禁用。这个想法的问题是仍然有一个不能被禁用的 CSS 类,所以即使这个想法不会阻止我最初的循环动画,它仍然看起来很丑。
标签: javascript jquery html css