Javascript 使用webkit运行iOS应用程序时选择延迟
我一直在使用webkit和AngularJs在iOS上编写应用程序,因为我在编写应用程序的过程中,在页面上选择按钮时遇到了延迟。因此,我编写了一个指令,在touchstart上为按钮实现选择,但我仍然在选择时获得延迟 我写的指令如下:Javascript 使用webkit运行iOS应用程序时选择延迟,javascript,jquery,ios,angularjs,webkit,Javascript,Jquery,Ios,Angularjs,Webkit,我一直在使用webkit和AngularJs在iOS上编写应用程序,因为我在编写应用程序的过程中,在页面上选择按钮时遇到了延迟。因此,我编写了一个指令,在touchstart上为按钮实现选择,但我仍然在选择时获得延迟 我写的指令如下: angular.module('test').directive('fastClick',function(){ // Runs during compile return { restrict: 'A', // E
angular.module('test').directive('fastClick',function(){
// Runs during compile
return {
restrict: 'A', // E = Element, A = Attribute, C = Class, M = Comment
link: function($scope, iElm, iAttrs, controller) {
iElm.bind('touchstart',function(){
var event = document.createEvent('Event');
event.initEvent('select', true, true);
iElm[0].addEventListener('select',true, false);
iElm[0].dispatchEvent(event);
});
}
};
});
而且我已经禁用了网页缩放功能。正如您在评论中提到的,无论何时单击按钮,您都会遇到延迟。延迟的主要原因是移动浏览器实现了300毫秒的延迟,以决定用户是否希望双击以放大页面。我强烈推荐,这更详细地解释了问题。基本上是这样的: 在手机或平板电脑等触摸设备上,浏览器实现300毫秒的速度 用户停止触摸显示屏和屏幕之间的延迟 当浏览器执行单击时。最初是这样引入的 浏览器可以判断用户是否希望双击以放大屏幕 网页。基本上,浏览器会等待大约300毫秒,以查看用户 是双击,还是只在显示屏上单击一次。而300毫秒 看起来很短,但令人惊讶的是当你 移除延迟 一个可能的解决方案是,如果您不使用诸如Ionic之类的混合移动应用程序框架来使用 FastClick是一个简单易用的库,用于消除300ms 物理点击和手机点击事件触发之间的延迟 浏览器 另外,如果您决定使用FastClick,我建议您在
运行
块中对其进行初始化,如下所示:
angular.module('myModule', [])
.run(function() {
FastClick.attach(document.body);
});
FastCklick经过大量测试,应用广泛,在许多设备上都能发挥出色的作用
另一个选择是使用。但是,ngTouch会覆盖ngClick,因此只会删除具有
ng click
属性的元素上的延迟。您的意思是选择一个单击事件吗?单击延迟发生的任何按钮参见下面的我的答案。