我构建了一个触摸/鼠标友好的jQuery插件 . 它适用于手机(ios,android ...)和桌面浏览器 . 但我在触摸屏笔记本电脑上安装Windows 8 Chrome时遇到了一些问题 . 不幸的是我没有这样的设备,不能做任何测试 . IE10工作正常 .
让我解释一下我的内容(非常简化的代码):
1.检查是触摸设备:
base.isTouch = ("ontouchstart" in document.documentElement);
2.获得适当的活动
if(base.isTouch === true){
//use touch events:
"touchstart.owl",
"touchmove.owl",
"touchend.owl"
} else {
//usemouse events
"mousedown.owl",
"mousemove.owl",
"mouseup.owl"
}
3.检查触摸事件:
if(base.isTouch === true){
x = event.touches[0].pageX
y = event.touches[0].pageY
} else {
x = event.pageX
y = event.pageY
}
我认为chrome的问题在于检测我的触摸事件,但是使用鼠标事件代替并将它们转换为触摸 .
我可以一起添加鼠标和触摸事件:
$('elem').on('mousedown.owl touchstart.owl',func);
哪个好,但我遇到了event.touches [0] .pageX的问题
谢谢!
Problem solved
要在Windows 8 Chrome和触摸屏上一起使用鼠标和触摸事件,我必须:
1.在一个元素上添加两个事件“touchstart.owl mousedown.owl”
2.检查“event.touches”:
if(event.touches){
x = event.touches[0].pageX
y = event.touches[0].pageY
} else {
x = event.pageX
y = event.pageY
}