fastclick:处理移动端click事件300毫秒延迟

1、兼容性

  • iOS 3及更高版本的移动Safari
  • iOS 5及更高版本的Chrome
  • Android上的Chrome(ICS)
  • Opera Mobile 11.5及以上版本
  • Android 2以来的Android浏览器
  • PlayBook OS 1及以上版本

2、不应用FastClick的场景

桌面浏览器; 
如果视口元标签中设置了width=device-width,Android上的Chrome 32+会禁用300ms延时;

<meta name="viewport" content="width=device-width, initial-scale=1">
  • 1

视频元标签如果设置了user-scalable=no,Android上的Chrome(所有版本)都会禁用300ms延迟。 
IE10中,可以使用css属性-ms-touch-action: none禁止元素双击缩放(参考文章)。

3、安装:

先执行安装fastclick的命令。

npm install fastclick -S

之后,在main.js中引入,并绑定到body

import FastClick from ‘fastclick‘

FastClick.attach(document.body);

原文地址:https://www.cnblogs.com/zhoubingyan/p/8423603.html

时间: 2024-11-10 19:29:03

fastclick:处理移动端click事件300毫秒延迟的相关文章

移动端click事件延迟300ms的原因以及解决办法

这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题 —— 当时的网站都是为大屏幕设备所设计的.于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题.这当中最出名的,当属双击缩放(double tap to zoom).这也是会有上述 300 毫秒延迟的主要原因. 当用户一次点击屏幕之后,浏览器并不能立刻判断用户是要进行双击缩放,还是想要进行单击操作.因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕. 于是,

移动端click事件延迟300ms的原因以及解决办法[转载]

原文: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题 —— 当时的网站都是为大屏幕设备所设计的.于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题.这当中最出名的,当属双击缩放(double tap to zoom).这也是会有上述 300 毫秒延迟的主要原因. 当用户一次点击屏幕之后,浏览器并不能立刻判断用户是要进行双击缩放,还是想要进行单击操作.因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕.

分享一个移动项目中消除click事件点击延迟的方法

对于前端工程师来说,apicloud无疑给我们提供了很好的平台,有各种各样的模块供我们使用,但是在实际项目的时候,很大部分的代码,还是需要我们用html css js来实现的.但是呢,移动端页面对于click事件会有 300 毫秒的延迟,导致多数用户感觉移动设备上基于 HTML 的 web 应用界面响应速度慢. 在这里推荐一个简单易用的 js库,用来消除界面中的click事件造成的延迟. https://github.com/ftlabs/fastclick 目前,亲测在iphone表现很完美.

移动端click事件延时

在移动端使用click事件会产生300ms的延迟 问题的产生: 移动端存在双击放大的问题,所以在移动端点击事件发生时,为了判断用户的行为(到底是要双击还是要点击),浏览器通常会等待300ms,如果300ms之内,用户没有再次点击,则判定为点击事件,否则判定为双击缩放. 为什么要解决: 线代web对性能的极致追求,对用户体验的高标准,让着300ms的卡顿变得难以接受 如何解决: 1.user-scalable:no  禁止缩放——没有缩放就不存在双击,也就没有点击延迟 2.指针事件:CSS:-ms

js移动端click事件延迟

今天做一个移动端网站,一块内容中包含两个js效果,一直以为是冲突,导致只能使用一个,后面发现是click事件延迟引起,解决代码如下:(function(){        var isTouch = ('ontouchstart' in document.documentElement) ? 'touchstart' : 'click';    if(!$.fn.quickOn){            $.fn.quickOn= function(){                argum

fastclick与zepto的 tap事件关于在手机上click事件的300ms延迟的区别

之前翻译过一篇关于fastclick的快速点击文章http://www.cnblogs.com/lilyimage/p/3568773.html,fastclick可以解决在手机上点击事件的300ms延迟:另外我们也知道zepto的touch模块,帮助我们实现了很多手机上的事件,比如tap等,tap事件也是为了解决在click的延迟问题.那么他们有什么区别呢? 先看zepto的touch模块实现: 1 $(document) 2 .on('touchstart ...',function(e){

解决触摸屏设备click事件300ms的延迟的问题

从点击屏幕上的元素到触发元素的 click 事件,移动浏览器(触摸屏)会有大约 300 毫秒的等待时间.为什么这么设计呢? 因为它想看看你是不是要进行双击(double tap)操作.300ms的等待时间,会让用户体验大大折损,fastclick.js库很好的解决了这个问题. 使用FastClick的时候,在需要使用的层上,实例化它.我们使用document.body是因为希望所有的按钮和链接都获得快速点击. 使用方法: window.addEventListener('load', funct

vue 解决300毫秒延迟

解决方案: (1)设置不能缩放:user-scalable=no 不能缩放就不会有双击缩放操作,因此click事件也就没了300ms延迟,这个是Chrome首先在Android中提出的 (2)设置显示宽度:width=device-width Chrome 开发团队在 Chrome 32 这一版中,他们将在包含 width=device-width 或者比 viewport 值更小的页面上禁用双击缩放. (3)IE的指针事件 (Pointer Events):touch-action:none

fastclick.js移动端click框架 在安卓手机上部分click无效

解决 fastclick.js 在部分安卓手机上click无效的问题, GitHub地址:  https://github.com/Jaymi66/fastclick fastclick.js 中有检测设备是否支持 touch 的方法, 其实修改 743 744 行加入 else 如果设备支持 则 return false;