解决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 相关文章推荐
JavaScript null和undefined区别分析
Oct 14 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
Vue.js一个文件对应一个组件实践
Oct 27 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
微信小程序-form表单提交代码实例
Apr 29 Javascript
如何手写一个简易的 Vuex
Oct 10 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
php微信公众号js-sdk开发应用
2016/11/28 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
python遍历数组的方法小结
2015/04/30 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
HTML5 weui使用笔记
2019/11/21 HTML / CSS
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
运动会广播稿200米
2014/01/27 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
人事任命书格式
2014/06/05 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
Go语言怎么使用变长参数函数
2022/07/15 Golang