有可能吗?除了将所有的悬停样式转换为 mouseover
监听器之外,还有没有可能阻止触摸设备触发 CSS 悬停状态?
我有一个必须在触摸和指针输入上工作的应用程序,它非常好用,但某些悬停时应用的样式在触摸设备上就没有意义,因为它们倾向于在用户点击对象后无限期地保留悬停状态。
需要考虑的事项:
对于我来说,设备宽度与启用触摸的设备没有关系,我们使用的触摸屏是台式电脑大小的监视器。
我不想强制用户在多输入设备上使用触摸输入。
有可能吗?除了将所有的悬停样式转换为 mouseover
监听器之外,还有没有可能阻止触摸设备触发 CSS 悬停状态?
我有一个必须在触摸和指针输入上工作的应用程序,它非常好用,但某些悬停时应用的样式在触摸设备上就没有意义,因为它们倾向于在用户点击对象后无限期地保留悬停状态。
需要考虑的事项:
对于我来说,设备宽度与启用触摸的设备没有关系,我们使用的触摸屏是台式电脑大小的监视器。
我不想强制用户在多输入设备上使用触摸输入。
if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
- Scott Meyershttp://codepen.io/Bnaya/pen/EoJlb
JS:
(function () {
'use strict';
if (!('addEventListener' in window)) {
return;
}
var htmlElement = document.querySelector('html');
function touchStart () {
document.querySelector('html').classList.remove('hover-active');
htmlElement.removeEventListener('touchstart', touchStart);
}
htmlElement.addEventListener('touchstart', touchStart);
}());
HTML:
<html class="hover-active">
CSS:
.hover-active .mybutton:hover {
box-shadow: 1px 1px 1px #000;
}