fastclick

Vue中解决移动端点击300毫秒延迟的问题

左心房为你撑大大i 提交于 2019-11-28 21:08:30
1. 安装模块 cnpm install fastclick -S 2. 在main.js中引入,并绑定到body 1 import FastClick from 'fastclick' 2 3 FastClick.attach(document.body); 当better-scroll和 fastclick冲突的不能点击的时候: 1 <slider> 2 <div v-for="item in recommends"> 3 <a :href="item.linkUrl"> 4 <!-- 当better-scroll和 fastclick冲突的不能点击的时候,只需要加上class="needsclick",图片就可以被点击了,解决冲突的问题 --> 6 <img class="needsclick" @load="loadImage" :src="item.picUrl"> 7 </a> 8 </div> 9 </slider> 来源: http://www.cnblogs.com/tian-long/p/8417438.html

vue移动端开发笔记

爱⌒轻易说出口 提交于 2019-11-26 20:19:42
移动端开发 多页面应用特点 页面跳转,返回html 优点: 首屏时间快,搜索引擎效果好 缺点: 页面切换慢 单页面应用特点(vue) 页面跳转,js渲染 优点: 页面切换快 缺点: 首屏时间稍慢,搜索引擎(SEO)优化效果差 服务器端渲染可以完美的解决单页面所遇到的问题 Viewport 基础 width 控制 viewport 的大小, device-width为设备的宽度 initial-scale 初始的缩放比例 minimum-scale 允许用户缩放到的最小比例 maximum-scale 允许用户缩放到的最大比例 user-scalable 用户是否可以手动缩放 < meta name = "viewport" content = " width = device - width , initial - scale = 1.0 , user - scalable = 1.0 , minimum - scale = 1.0 , maximum - scale = 1.0 " > 移动端300ms延迟 移动端浏览器click事件为什么会有300ms的延迟呢?因为在手机上有个双击方案: 在手机上快速点击两下,实现页面放大;再次双击,恢复到原始比例 那它是如何实现的呢?浏览器在捕捉到第一次点击事件后,会等待一段时间,如果在这段时间内,用户没有再次进行点击操作的话,就执行单击事件

Vue-cli3 项目初始化备忘

左心房为你撑大大i 提交于 2019-11-26 17:33:27
准备尝试用vue制作一个手机端的可视化应用 全局安装vue命令 cnpm install -g @vue/cli 创建项目 进入项目存放目录新建项目 vue create [project name]cd [project name] 安装插件 这里我安装了一个代码校验、以及router、vuex vue add @vue/eslint vue add router vue add vuex 全局CLI配置 在以往的版本中都会有个config文件作为全局配置,但是当前的版本需要自己添加 vue.config.js ,只要在package.json同级目录下(即根目录)创建 const path = require("path"); function resolve(dir) { return path.join(__dirname, "./", dir); } module.exports = { chainWebpack: config => { // 为src下文件配别名,不使用相对路径 config.resolve.alias .set("@", resolve("src")) .set("assets", resolve("src/assets")) .set("components", resolve("src/components")) .set("views",

移动端才坑注意事项

孤者浪人 提交于 2019-11-26 17:03:06
1. IOS移动端click事件300ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点击延迟甚至是点击失效。这是由于区分单击事件和双击屏幕缩放的历史原因造成的, 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoom)的方案,比如你在手机上用浏览器打开一个PC上的网页,你可能在看到页面内容虽然可以撑满整个屏幕,但是字体、图片都很小看不清,此时可以快速双击屏幕上的某一部分,你就能看清该部分放大后的内容,再次双击后能回到原始状态。 双击缩放是指用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。 原因就出在浏览器需要如何判断快速点击上,当用户在屏幕上单击某一个元素时候,例如跳转链接<a href="#"></a>,此处浏览器会先捕获该次单击,但浏览器不能决定用户是单纯要点击链接还是要双击该部分区域进行缩放操作,所以,捕获第一次单击后,浏览器会先Hold一段时间t,如果在t时间区间里用户未进行下一次点击,则浏览器会做单击跳转链接的处理,如果t时间里用户进行了第二次单击操作,则浏览器会禁止跳转,转而进行对该部分区域页面的缩放操作。那么这个时间区间t有多少呢?在IOS safari下,大概为300毫秒

vue 解决300毫秒延迟

◇◆丶佛笑我妖孽 提交于 2019-11-26 13:02:17
解决方案: (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   根据规范,touch-action 属性决定 “是否触摸操作会触发用户代理的默认行为。这包括但不限于双指缩放等行为”。 (4)vue项目 fastclick插件   1、项目根目录打开powershell ,执行 npm install fastclick --save 命令安装 fastclick 插件   2、在 根目录 —> src —> main.js 中引入 fastclick 插件 import fastClick from 'fastclick'   3、在 main.js 中,调用 fastclick 插件 fastClick.attach(document.body) 来源: https://www.cnblogs.com/whoamimy/p

浏览器的兼容性问题(移动端和pc端)

非 Y 不嫁゛ 提交于 2019-11-26 06:44:45
浏览器兼容是从三大方面来说的,分别为html,css,javaScript这三大方面来说的。如下图: 移动端 1. IOS移动端click事件300ms的延迟响应 移动设备上的web网页是有300ms延迟的,往往会造成按钮点击延迟甚至是点击失效。这是由于区分单击事件和双击屏幕缩放的历史原因造成的, 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoom)的方案,比如你在手机上用浏览器打开一个PC上的网页,你可能在看到页面内容虽然可以撑满整个屏幕,但是字体、图片都很小看不清,此时可以快速双击屏幕上的某一部分,你就能看清该部分放大后的内容,再次双击后能回到原始状态。 双击缩放是指用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。 原因就出在浏览器需要如何判断快速点击上,当用户在屏幕上单击某一个元素时候,例如跳转链接a标签 ,此处浏览器会先捕获该次单击,但浏览器不能决定用户是单纯要点击链接还是要双击该部分区域进行缩放操作,所以,捕获第一次单击后,浏览器会先Hold一段时间t,如果在t时间区间里用户未进行下一次点击,则浏览器会做单击跳转链接的处理,如果t时间里用户进行了第二次单击操作,则浏览器会禁止跳转