我的网站广泛使用图像地图。这些图像是中世纪手稿的页面。 AREA 标签的 mouseOver 事件附加了一个工具提示,它显示了鼠标悬停在其上的行的古代文字的现代印刷转录。
我刚刚在苹果商店的 iPad 上查看了我的网站。 iPad 在很多方面使用起来都很有趣,但是,我想知道 Apple 将鼠标事件映射到手指触摸事件的情况。苹果这样做可能有充分的理由,但他们的选择对我来说似乎违反直觉且过于复杂。
具体来说,iPad Safari 浏览器显然以不同的方式响应 FingerDown 和 FingerTap。当我点击图像映射的某个区域时,会显示连接到 AREA 标记的鼠标悬停事件的工具提示,并且在我点击其他位置之前一直保持可见。当我将手指放在图像映射的某个区域上时,该区域的颜色发生了变化。因此,如果 iPad Safari 检测到 mouseOver 事件处理程序,它会在 click|tap 上执行 mouseOver 代码,并且显然会阻止“click”事件传播,因此,如果您也有某些内容连接到 click 事件,那么它就不起作用?是对的吗?
但更重要的是,为什么 FingerDown 不是 iPad-Safari 中 mouseOver 的对应项?在映射 mouseOver 事件时,FingerDown 似乎比 Tap 更有可能。我本希望事情能以这种方式映射:
MouseClick : FingerTap (i.e. finger down and then immediately up)
MouseOver : FingerDown (finger down and stays on the spot)
如果Apple将fingerDown视为mouseOver的对应物,那么工具提示可以在FingerDown上显示,并在fingerUp上再次变得不可见,这将是mouseOut的对应物。
也许有人可以启发我了解导致 Apple 实现这些特定的鼠标触摸事件映射的思维过程?
谢谢
我一直在专门研究 iPad 何时触发“鼠标悬停”事件与“点击”事件。当用户点击页面上的任意位置时,iPad 首先会触发“鼠标悬停”事件,就好像用户刚刚将鼠标光标放在该位置一样。它还会在最后一个获得焦点的元素上触发“鼠标悬停”事件。然后,据我所知,浏览器会检查 DOM 是否因“mouseover”事件回调而发生任何更改。
如果 DOM 发生更改,浏览器不会触发“单击”事件。如果用户第二次点击同一元素,浏览器会触发“单击”事件,但不会触发另一个“鼠标悬停”事件。
另一方面,如果用户第一次点击某个元素并且“mouseover”事件完成后 DOM 没有更改,则浏览器将触发“click”事件,而无需等待第二次点击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)