解决vue 界面在苹果手机上滑动点击事件等卡顿问题


Posted in Javascript onNovember 27, 2018

用vue编写项目接近尾声,需要集成到移动端中,在webstorm上界面,运行效果都很完美,但是在苹果手机上各种问题都出现了,原生项目一向滑动流畅,事件响应迅速,可是苹果手机打开这个项目有两个问题,

(1).滑动页面卡顿,

(2).点击事件响应缓慢,百度才发现在苹果手机上有300ms的延迟。

一.滑动页面卡顿

//页面布局
<template>
 <div class='content'>
  页面内容
 </div>
</template>

在对应的组件的最外层div上加上这样的样式:

.content{
  -webkit-overflow-scrolling: touch;
  }

-webkit-overflow-scrolling: touch;这句代码最好可在公共的样式中添加,防止很多页面都需要写的麻烦。这句代码虽然可以解决滑动不流畅的问题,但是可能会引起几个小问题:

(1).在滑动界面之中使用的position:fixed 无法固定下来,会随着界面进行一起滚动

解决方法:将使用的position:fixed(头部导航)写在滑动部位外部,在使用绝对定位进行布局,以此解决问题

(2).vue中使用v-if导致的界面第一次无法滑动

解决方法:将v-if改成v-show进行展示,解决界面进入之后不能滑动的问题

二.点击事件响应缓慢

(1).安装fastclick (npm install fastclick -S)

(2).在main.js中设置方法

import FastClick from 'fastclick'
FastClick.attach(document.body);

在引入fastclick之后,虽然页面事件快了很多,但是会有一个副作用:input输入框需要连续点击两次或者长按才能获取焦点,真是到处是坑啊!

解决方法:在main.js中添加下面的代码

FastClick.prototype.focus = function(targetElement) {
 var length;
// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
 if (deviceIsIOS&& targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
  length = targetElement.value.length;
  targetElement.focus();
  targetElement.setSelectionRange(length, length);
 } else {
  targetElement.focus();
}
};

总结

以上所述是小编给大家介绍的解决vue 界面在苹果手机上滑动点击事件等卡顿问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
Mar 30 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
JavaScript面试题(指针、帽子和女朋友)
Nov 23 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
vue-resource调用promise取数据方式详解
Jul 21 Javascript
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
怎么理解wx.navigateTo的events参数使用详情
May 18 Javascript
Node+OCR实现图像文字识别功能
Nov 26 #Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 #Javascript
JS 验证码功能的三种实现方式
Nov 26 #Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 #Javascript
tracking.js页面人脸识别插件使用方法
Apr 16 #Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 #Javascript
Vue.js的动态组件模板的实现
Nov 26 #Javascript
You might like
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python实现提取文章摘要的方法
2015/04/21 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
python使用Matplotlib画饼图
2018/09/25 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
Python扫描端口的实现
2021/01/25 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
教师个人自我评价范文
2014/04/13 职场文书
门前三包责任书
2014/04/15 职场文书
党员服务承诺书
2014/05/28 职场文书
求职教师自荐书
2014/06/19 职场文书
护士岗位竞聘书
2015/09/15 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL