相关疑难解决方法(0)

了解触摸事件

我正在尝试让我的一些图书馆使用触摸设备,但我很难弄清楚它们是如何被支持的以及它们是如何工作的.

基本上,有5个触摸事件,但似乎只有touchstart事件(duh)在移动浏览器中有共识.我创建了一个小提琴作为测试用例.

我已经在我的Galaxy Note上使用Android 4测试了这个,但您也可以通过桌面浏览器检查链接.

目标是试图弄清楚如何处理水龙头,双水龙头和长水龙头.没有什么花哨.

基本上,这是发生的事情:

Android的浏览器的股票不会触发触摸事件.它只是试图模仿鼠标点击,水龙头,射击mousedown,mouseupclick事件连续,但双水龙头只是放大和缩小网页塔.

当手指触摸屏幕时,Chrome for Android会触发touchstart事件.如果它的发布很快,它触发那么mousedown,mouseup,touchend最后click事件.

在的情况下,长按后,在约半秒它激发mousedownmouseup,和touchend当手指抬起时,没有click在结束事件.

如果你移动你的手指,它会发射touchmove几次事件,然后它会发射一个touchcancel事件,之后什么都不会发生,甚至touchend在举起手指时都不会发生.

双击触发/缩小功能变焦,但事件明智它触发组合touchstart- touchevent两次,发射没有鼠标事件.

火狐为Android正确触发该touchstart事件,并在短击火灾的情况下mousedown,mouseup,touchendclick之后.

如果长时间点击,它会触发mousedown,mouseup最后 …

javascript mobile touch

78
推荐指数
3
解决办法
7万
查看次数

如何检测浏览器是否支持鼠标悬停事件?

让我们假设我有一个网页,其中有一些onmouseover javascript行为来下拉菜单(或类似的东西)

显然,这不适用于iPad或智能手机等触控设备.

如何检测浏览器是否支持onmouseover或onmouseout等悬停事件以及CSS中的hover伪标记?

注意:我知道如果我对此感到担心,我应该以不同的方式编写它,但我很好奇是否可以进行检测.

编辑:当我说"支持悬停事件"时,我的意思是"浏览器是否有有意义的悬停事件表示".如果硬件支持它但软件不支持(反之亦然),则没有有意义的表示.除了一些即将推出的技术,我认为任何触摸设备都没有有意义的悬停事件表示.

javascript html5 browser-detection onmouseover touch

13
推荐指数
4
解决办法
6610
查看次数

Modernizr.touch在firefox浏览器上返回true

我写了一个代码的和平,以触摸和非触摸为基础的事件.它适用于所有其他浏览器和设备,但Firefox.默认FF返回true.

var thumbsEvent, isTouch = Modernizr.touch; // detect the touch
if(isTouch){
   thumbsEvent = 'click';//on touch surface, click
}
else {
   thumbsEvent = 'mouseover';//on non touch surface, mouseover
}
Run Code Online (Sandbox Code Playgroud)

有没有办法管理这个问题.

示例小提琴

javascript firefox touch-event modernizr

10
推荐指数
2
解决办法
7729
查看次数

防止触摸在Android浏览器中生成mouseOver和mouseMove事件

我正在建立一个需要在PC,Mac和移动浏览器上进行触摸和鼠标交互的页面。

在用于touchStart,touchMove,touchEnd和touchCancel的事件处理程序方法中,我正在调用event.preventDefault以防止移动浏览器同时触发触摸和鼠标事件。

这对于mouseDown和mouseUp效果很好,当我触摸屏幕时它们不会被触发,但是由于某种原因,每次touchStart被触发后一小会儿(夫妇100ms),Android浏览器仍然会触发mouseMove事件(在第一个touchStart上) ,此mouseMove之前带有mouseOver)。如果我足够快地触摸,那么touchEnd之后会触发mouseMove(相对于touchStart而言具有相同的延迟)。

我真的很想防止触摸产生任何鼠标事件,并且我也想详细了解这里发生的事情,所以我有以下问题:

  • 我是否还有其他未捕获的触摸事件导致mouseMove事件?
  • 为什么mouseMove相对于触摸开始有点延迟?
  • 为什么其他任何触摸事件(touchMove,touchEnd)都不生成mouseMove?
  • 其他浏览器是否有可能会因触摸而产生鼠标事件的怪癖?
  • 是否有不同的跨平台方法来防止触摸导致鼠标事件?也许一些CSS?

javascript mouseover touch mousemove preventdefault

5
推荐指数
0
解决办法
658
查看次数