检测设备是否为触摸启用和低于一定的屏幕尺寸
Detect if device is touch enabled and below a certain screen size
我想激活/禁用:hover取决于设备,我想最好的方法是检查设备是否启用触摸,并检测屏幕尺寸,因为最新的笔记本电脑也有触摸屏。有办法做到这一点与javascript/jquery?
你可以试试
var is_touch_device = 'ontouchstart' in document.documentElement;
另一种检测方法如下:
function is_touch_device() {
return !!('ontouchstart' in window);
}
如果这是一个选项,Modernizr将能够检测触摸(除了目标浏览器/设备的一堆其他属性):http://modernizr.com/它将在html标签上放置一个适当的类,您可以检测。
要检测屏幕大小(哦,浏览器窗口大小),您可以使用:
window.screen.availHeight
window.screen.availWidth
var touchDevice = (typeof (window.ontouchstart) !== 'undefined') ? true : false;
您可以将modernizr和media查询结合使用:
在modernizr的下载页面上创建一个带有TOUCH EVENT 复选的文件。Modernizr将在您的<body>
上包含touch
或no-touch
类
在你的CSS中,为每个:hover
插入.no-touch
之前。在下一个示例中,只有宽度大于768px且没有触摸事件的屏幕才会有:hover
.
/* CSS */
a{
color:#DD0000; /* Dark red */
text-decoration:none;
}
@media screen and (min-width: 768px) {
.no-touch a:hover {
color:#FF0000; /* red */
text-decoration:underline;
}
}
相关文章:
- 如何将jquery函数仅应用于大屏幕
- Javascript元素相对于屏幕的位置
- 如何在JS中创建类似于iOS主屏幕的分页效果
- 我可以修复手机相对于屏幕的背景吗?(注意:不是窗口)
- 只有当屏幕大小为一定宽度时,才希望该功能工作
- 屏幕依赖于菜单切换,并在javascript中自动打开
- 如何设置正文相对于屏幕大小的字体大小
- 应用于导航栏的台式机和笔记本电脑的屏幕宽度
- 如何使页面的一部分始终相对于屏幕处于同一位置
- 如何查找屏幕宽度并将其应用于特定的 css
- 不同的 CSS 适用于不同的屏幕尺寸
- 获取元素相对于屏幕的位置.(或替代解决方案)
- 离子事件侦听器在每个屏幕上触发,只想应用于一个控制器
- 当屏幕达到一定大小时,如何包含JavaScript文件
- CSS/Javascript-适用于较小屏幕的移动响应菜单
- 如何使一个网站的加载屏幕保持一定的秒数
- 一个很好的字体大小相对于字符数和屏幕宽度的算法
- 元视窗仅适用于移动设备(屏幕宽度小于640)
- 类似于灯箱插件,也适合(缩小)屏幕上的图像
- 相当于window.屏幕顶部在firefox和chrome