解决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 相关文章推荐
html超链接打开窗口大小的方法
Mar 05 Javascript
Jquery为a标签的href赋值实现代码
May 03 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
js中同步与异步处理的方法和区别总结
Dec 25 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
jQuery中wrapAll()方法用法实例
Jan 16 Javascript
原生JS实现图片翻书效果
Feb 16 Javascript
基于vue.js实现的分页
Mar 13 Javascript
React如何避免重渲染
Apr 10 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 Javascript
npm全局环境变量配置详解
Dec 15 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
vue组件间通信解析
2017/03/01 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
pytorch中tensor的合并与截取方法
2018/07/26 Python
python实现换位加密算法的示例
2018/10/14 Python
Python3数字求和的实例
2019/02/19 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
使用npy转image图像并保存的实例
2020/07/01 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
最热门的自我评价
2013/12/30 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
专项法律服务方案
2014/06/11 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
小学生校园广播稿
2014/09/28 职场文书
庆祝教师节标语
2014/10/09 职场文书
怎样写观后感
2015/06/19 职场文书
交通安全温馨提示语
2015/07/14 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
nginx之queue的具体使用
2022/06/28 Servers