繁体   English   中英

响应式网站:为什么需要touchstart而不是click?

[英]Responsive website: why would touchstart be needed instead of click?

我正在使用ReactJS开发一个复杂的单页应用程序。

该页面最初是一个桌面浏览器应用程序,到处都有许多“ onclick”侦听器,包括内部代码,还有我们不容易修改的外部插件/库。

但是现在,我们使其响应迅速,并且可以在移动网站和Cordova / Phonegap应用程序中使用。

仅使CSS响应即可产生不错的结果,而touchstart不引入touchstart事件。

当用户使用点击监听器触摸元素时,将调用该监听器,并且click事件会正确冒泡( 在iOS上除外,但可以解决

因此,除非我尝试实现特定于触摸的复杂功能(如带触摸的拖放)或特殊的“合成事件”(如按,捏,轻按,滑动(通常由移动专用库提供)),否则为什么我需要使用touchstart以任何方式?

例如,我经常看到人们尝试根据设备功能在应用程序中混合使用clickstart和touchstart

但是,如果click有效,为什么我需要关心touchstart

尚未通过click处理的touchstart的优点是什么?

注意:这根本不是300ms的点击延迟,可以通过其他方式解决。

我们使用touchstart / touchmove的唯一原因是发生拖动事件,例如滚动/内部倾斜检测。

例如,我们要检测无限滚动的滚动结束。

在桌面上,我们可以使用:

$('.whatever').scroll({ blahhhh

但在移动设备上,我们使用:

$('.whatever').on('touchmove', blahhhh

另外,您绝对应该检出如何绑定'touchstart'和'click'事件,但不能同时响应两者?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM