• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 关于uniApp editor微信滑动问题

关于uniApp editor微信滑动问题

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了uniApp,editor,微信滑动等相关知识,希望对您有所帮助

这篇文章主要介绍了关于uniApp editor微信滑动问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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


600512453984c.jpg


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

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

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


60051278361f3.jpg

解决方法


6005128be6cf5.jpg


data内添加这两个值


600512a1a2c5a.jpg


添加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];


600513701eb7d.jpg


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



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 手把手教你基于uniapp框架实现动态路由、动态tabbar
  • uniapp实现微信小程序全局分享的示例代码
  • uniapp如何取消原生导航栏
  • Uniapp发布为H5版本时如何隐藏访问路径的#符号
  • uniapp上如何实现安卓app微信登录功能(操作流程总结)
  • uniapp中怎么实现直播旁路推流(步骤分享)
  • 关于uniApp editor微信滑动问题
  • uniapp怎么实现小程序页面的自由拖拽功能
  • 带你搞懂uniapp跨域问题(实例详解)
  • 如何解决uni图标在app上不显示的问题

相关文章

  • ThinkPHP支持的四种URL模式:普通模式、PATHINFO、REWRITE和兼容模式
  • PHP实现姓名根据首字母排序的类与方法(实例代码)
  • PHP过滤HTML标签代码方法
  • Linux环境变量配置的6种方法,建议收藏!
  • 解决sqlServer使用ROW_NUMBER时不排序的方法
  • 宝塔面板删除网站根目录后自动重建的解决办法
  • 你知道有四种找到wordpress登录网址的方法吗?
  • PS+AI设计制作复古的霓虹灯字体效果教程
  • JS如何实现数组数据的上移下移
  • 怎么利用配置文件来管理多个 Node.js 进程

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • PHP中如何读取CSV内容并存入一个数组中
    • vue.js如何实现数字滚动增加效果?代码示例
    • 正则表达式解决input框固定输入值的格式(金额,特殊字符)
    • php中如何获取当前的函数名
    • Laravel能用钉钉接收系统警报!
    • 如何使用微信获取openid的静默及非静默
    • Photoshop详细绘制金属质感的企业标志
    • 织梦DedeCMS系统列表页调用TAG标签并带上链接的实
    • 如何禁用WordPress5.5自带Sitemap
    • Phpcms自定义URL规则技巧

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有