在触摸设备上处理OnMouseOver javascript事件是否有首选替代或最佳做法?我只能想到将所有事件转换为OnMouseClick.不幸的是,这会混淆悬停光标触发的事件与单击光标触发的事件之间的差异.
是否有任何替代方案或解决方案对于将与鼠标设备和触摸设备一起使用的网页的用户体验的破坏性较小?
Mic*_*man 36
在触摸设备上处理OnMouseOver javascript事件是否有首选替代或最佳做法?
最简洁的答案是不.
设备特定事件与其他设备的事件没有1:1映射.使用Touch时,没有适当的"悬停"等效项.
鼠标事件(mouseover,mouseout,mousedown,mouseup,mousemove等)特定于鼠标输入设备.键盘有keydown,keypress和keyup.触摸有touchstart,touchmove,touchend和touchcancel.iPhone/iPad /等上的Webkit具有Apple特有的附加手势开始/移动/结束事件.
可以通过这些事件之一触发更高级别的通用事件,例如焦点,模糊,点击,提交等.一个点击事件,例如,可以使用鼠标,触摸或键盘事件触发.(点击,顺便说一句,是一个名称不合适的事件,应该更恰当地称之为动作,但由于其鼠标历史记录仍称为点击).
首选(或"一个Web")方法是将鼠标事件用于特定于鼠标的事物,在这些事物中您无法避免它们,并坚持使用其他所有事件的通用事件.
根据WebKit构建和用于构建它的标志,您可以在某些特殊情况下在某些Touch接口上触发一些鼠标事件,但您实际上不希望在其上构建UI,因为这些情况存在的唯一原因是允许mobile-Webkit在市场上获得牵引力.
触摸事件在各个平台上也不一致.如果您正在进行任何移动/触摸操作,请查看ppk的工作,http://quirksmode.org/mobile/tableTouch.html
| 归档时间: |
|
| 查看次数: |
40790 次 |
| 最近记录: |