关于uniApp editor微信滑动问题


Posted in Javascript onJanuary 15, 2021

uniapp 小程序在微信下会出现类似下拉问题

关于uniApp editor微信滑动问题

解决方法是在app.vue 的页面onLaunch方法内添加禁止下滑方法

this.$nextTick(() => {
document.body.addEventListener("touchmove", this.addBodyTouchEvent, {
passive: false
});
});

问题解决后在uniApp的editor组件内无法滑动

关于uniApp editor微信滑动问题

解决方法

关于uniApp editor微信滑动问题

data内添加这两个值

关于uniApp editor微信滑动问题

添加touchstart和touchend方法手动写滑动效果

touchstart(e) {
this.previewScrollTop = e.touches[0].pageY;
},
touchend(e) {
let distance = e.changedTouches[0].pageY - this.previewScrollTop;
if (Math.abs(distance) <= 10) {
return false;
}
//距离太短时不滚动
let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0],
maxHeight = Math.max(0, dom.scrollHeight - dom.clientHeight), //最大高度范围
tempData = this.scrollTop + (distance >= 0 ? -60 : 60); //计算应该高度数据
if (tempData >= maxHeight) {
this.scrollTop = maxHeight;
dom.scrollTop = this.scrollTop;
} else if (tempData <= 0) {
this.scrollTop = 0;
dom.scrollTop = this.scrollTop;
} else {
this.scrollTop = tempData;
dom.scrollTop = this.scrollTop;
}
}

此时滑动效果出现。但是滑动出不流畅。

本想着写动画过渡效果。但是。这个滑动是用dom.scrollTop属性做的。该属性不属于css属性无法使用css过渡动画

所以写了一个js方法。

/**
* 动画垂直滚动到页面指定位置
* @param { } dom element对象
* @param { Number } currentY 当前位置
* @param { Number } targetY 目标位置
*/
export function scrollAnimation(dom, currentY, targetY) {
// 计算需要移动的距离
let needScrollTop = targetY - currentY;
let _currentY = currentY;
setTimeout(() => {
// 一次调用滑动帧数,每次调用会不一样
const dist = Math.ceil(needScrollTop / 10);
_currentY += dist;
dom.scrollTo(_currentY, currentY);
// 如果移动幅度小于十个像素,直接移动,否则递归调用,实现动画效果
if (needScrollTop > 10 || needScrollTop < -10) {
scrollAnimation(dom, _currentY, targetY);
} else {
dom.scrollTo(_currentY, targetY);
}
}, 1);
}

重新调用

touchend(e) {
let distance = e.changedTouches[0].pageY - this.previewScrollTop;
if (Math.abs(distance) <= 10) {
return false;
}
//距离太短时不滚动
let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0],
maxHeight = Math.max(0, dom.scrollHeight - dom.clientHeight), //最大高度范围
tempData = this.scrollTop + (distance >= 0 ? -60 : 60); //计算应该高度数据
if (tempData >= maxHeight) {
this.scrollTop = maxHeight;
dom.scrollTop = this.scrollTop;
} else if (tempData <= 0) {
this.scrollTop = 0;
dom.scrollTop = this.scrollTop;
} else {
this.scrollTop = tempData;
scrollAnimation(dom, 0, this.scrollTop);
}
}

备注一下:

这个问题本来打算用Transform:translateY(y)属性来写的,实际上也做了。

但是在做了之后发现

let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0];

关于uniApp editor微信滑动问题

这里选中的元素是红框下面的元素。在做偏移的时候整个元素偏移。文档没显示完全但是下方确有一大块空白。当时也没截图。记录一下自己踩得坑。

到此这篇关于关于uniApp editor微信滑动问题的文章就介绍到这了,更多相关uniApp editor微信滑动内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
AngularJS表格添加序号的方法
Mar 03 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
JavaScript数据类型的存储方法详解
Aug 25 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 #Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 #Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 #Javascript
js中延迟加载和预加载的具体使用
Jan 14 #Javascript
JS中箭头函数与this的写法和理解
Jan 14 #Javascript
JavaScript this关键字的深入详解
Jan 14 #Javascript
Vue实现多页签组件
Jan 14 #Vue.js
You might like
php实现处理输入转义字符的代码
2015/11/08 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
js右键菜单效果代码
2007/07/21 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python之生成多层json结构的实现
2020/02/27 Python
什么是Python中的顺序表
2020/06/02 Python
pandas DataFrame运算的实现
2020/06/14 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
学前教育毕业生自荐信
2013/10/29 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
公司委托书格式范文
2014/04/04 职场文书
雷人标语集锦
2014/06/19 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
工地材料员岗位职责
2015/04/11 职场文书
逃课检讨书范文
2015/05/06 职场文书
小学思想品德教学反思
2016/02/24 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android