目前,我正在为Android和IOS开发Web应用程序(Backbone.js上的jQueryMobile)。 对于性能,我试图在这些设备上删除300毫秒的点击延迟。
对于那些不知道300ms延迟是什么的人来说,这是一篇非常好的文章解释它。
http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
对于Android设备,它很容易被删除。
<meta name="viewport" content="width=device-width, user-scalable=no">
上面的元代码做了trick.once chrome识别用户放大/缩小在页面中不可用,300ms延迟将消失。
但是IOS safari的情况,没有支持禁用它。
所以我已经尝试了一些插件来创建&#34;没有延迟点击事件&#34;基于touchstart
- touchend
事件和触及的位置。
我选择了&#39; vclick&#39;事件是jQueryMobile的原始事件,没有延迟点击。
除了一个事件处理程序更改DOM元素的情况之外它完美地运行,并且在我点击的某个时刻出现了input
,OS键盘也出现了。
这是因为键盘显示基于&#34;正常&#34;点击事件,在没有延迟点击事件后延迟300ms。并且因为我在没有延迟点击事件时移动元素,在时间&#34;正常&#34;点击事件发生时,原始点击的元素不在input
个元素。
我的问题是如何在键盘显示事件中删除300ms延迟?
简单可重复的代码在这里
http://jsfiddle.net/Suish/gypbn304/1/
任何建议或帮助将不胜感激。
答案 0 :(得分:1)
https://github.com/ftlabs/fastclick
fastclick.js
window.addEventListener('load', function() {
var fastClick = new FastClick(document.body);
}, false);