Don't在触摸设备上显示悬停状态
Don't show hover state on touch devices
这可能吗?除了将我所有的悬停样式转换为mouseover
监听器之外,是否可以阻止触摸设备触发CSS悬停状态?
我有一个应用程序必须同时处理触摸和指针输入,它工作得很好,但悬停上应用的某些样式在触摸设备上没有意义,因为它们往往在用户点击对象后无限期地保持悬停状态。
需要考虑的事项:
-
对我来说,设备宽度与支持触摸的设备无关,我们在这里使用的触摸屏是台式显示器。
-
我不想强迫用户在多输入上通过触摸进行输入装置
我按照上面评论中链接中分享的方法解决了这个问题。如果您没有使用它,请考虑在这种情况下使用Modernizr。也想听听其他方法。。。
Blender提到,作为用户,你可以检查触摸事件,比如:
html.touch {
/* Touch Device ~ No Hovers */
}
html.no-touch {
/* Not a Touch is disabled */
}
html.no-touch .element:hover {
opacity:.5;
}
我的解决方案是将悬停活动css类添加到HTML标记中,并在所有CSS选择器的开头使用:hover并在第一次触摸启动事件上删除该类。
http://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;
}
相关文章:
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 有问题的突出显示(悬停)一个系列,突出显示图表
- 下拉显示悬停选项
- 图表JS未显示悬停时的小数据
- 传单显示悬停时的地图 - 地图加载不正确
- 如何使用 Javascript 将鼠标悬停在元素上显示悬停
- 使链接保持活动状态,使用 JavaScript 在单击时显示悬停效果
- Jquery 隐藏/显示 悬停时反复发生
- 仅高亮显示悬停的可丢弃项或放置到的项目
- chartjs显示悬停在折线图上的点
- 如何在Javascript中显示悬停类
- 如何在网站的samrtphone中显示悬停帮助
- Don't在触摸设备上显示悬停状态
- 在ace中显示悬停光标的工具提示
- 显示悬停图像
- 事件,用于突出显示悬停元素
- 如何在基本面上突出显示悬停时的gmap标记
- 防止超链接的触摸和显示悬停状态
- 是否有一种方法来显示悬停/工具提示信息,当我鼠标在spotfire可视化标题
- 在没有javascript的情况下显示悬停子菜单