位置: IT常识 - 正文

【移动端VUE】使用富文本编辑器插件 vue-quill-editor 以及移动端适配踩过的坑(vue做移动端)

编辑:rootadmin
【移动端VUE】使用富文本编辑器插件 vue-quill-editor 以及移动端适配踩过的坑 一、产品要求

推荐整理分享【移动端VUE】使用富文本编辑器插件 vue-quill-editor 以及移动端适配踩过的坑(vue做移动端),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue写移动端,vue怎么实现移动端适配,vuetify 移动端,vue做移动端适配最佳解决方案,亲测有效,vue开发移动端用什么布局,vue3移动端ui,vue怎么实现移动端适配,vue做移动端适配最佳解决方案,亲测有效,内容如对您有帮助,希望把文章链接给更多的朋友!

合同填写审批意见时使用富文本编辑器填写,支持字体较粗、修改颜色,最后审批历史可以展示出业务填写的效果,实现结果:

二、代码实现1. 安装 vue-quill-editornpm install vue-quill-editor –save 或者yarn add vue-quill-editor2、引入- 全局引入

在 main.js 中引入插件

// 全局挂载 VueQuillEditorimport VueQuillEditor from 'vue-quill-editor'import 'quill/dist/quill.core.css'import 'quill/dist/quill.snow.css'import 'quill/dist/quill.bubble.css'Vue.use(VueQuillEditor)- 局部引入// 引入样式和quillEditorimport 'quill/dist/quill.core.css'import 'quill/dist/quill.snow.css'import 'quill/dist/quill.bubble.css'import { quillEditor } from 'vue-quill-editor'// 注册 quillEditorcomponents: { quillEditor},3、使用VueQuillEditor

这里展示局部使用的代码

<template> <div class="local-quill-editor"> <quill-editor ref="myLQuillEditor" v-model="content" :options="editorOption" class="editor" @blur="onEditorBlur" @focus="onEditorFocus" @change="onEditorChange"> > </quill-editor> </div></template><script>// 引入样式和quillEditorimport 'quill/dist/quill.core.css'import 'quill/dist/quill.snow.css'import 'quill/dist/quill.bubble.css'import { quillEditor } from 'vue-quill-editor'// 工具栏配置项const toolbarOptions = [ // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike'] ['bold', 'italic', 'underline', 'strike'], // 引用 代码块-----['blockquote', 'code-block'] ['blockquote', 'code-block'], // 1、2 级标题-----[{ header: 1 }, { header: 2 }] [{ header: 1 }, { header: 2 }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }] [{ list: 'ordered' }, { list: 'bullet' }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }] [{ script: 'sub' }, { script: 'super' }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }] [{ indent: '-1' }, { indent: '+1' }], // 文本方向-----[{'direction': 'rtl'}] [{ direction: 'rtl' }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }] [{ size: ['small', false, 'large', 'huge'] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }] [{ header: [1, 2, 3, 4, 5, 6, false] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }] [{ color: [] }, { background: [] }], // 字体种类-----[{ font: [] }] [{ font: [] }], // 对齐方式-----[{ align: [] }] [{ align: [] }], // 清除文本格式-----['clean'] ['clean'], // 链接、图片、视频-----['link', 'image', 'video'] ['image', 'video']]export default { name: 'LocalQuillEditor', // 注册 quillEditor components: { quillEditor }, data () { return { content: '', editorOption: { modules: { toolbar: toolbarOptions }, theme: 'snow', placeholder: '请输入正文' // Some Quill optiosn... } } }, methods: { // 失去焦点事件 onEditorBlur (e) { console.log('onEditorBlur: ', e) }, // 获得焦点事件 onEditorFocus (e) { console.log('onEditorFocus: ', e) }, // 内容改变事件 onEditorChange (e) { console.log('onEditorChange: ', e) } }}</script><style scoped lang="scss">.editor { height: 500px;}</style>【移动端VUE】使用富文本编辑器插件 vue-quill-editor 以及移动端适配踩过的坑(vue做移动端)

然后就实现了产品想要的结果

三、出现的问题问题一:在本地测试的时候,点击输入发现控制台会报错:Unable to preventDefault inside passive event listener due to target being treated as passive.,并且无法获取焦点,最后解决方案:// 使用全局样式样式去掉 * { touch-action: pan-y; } 问题二:在移动端,复制文字以后,手机自带的复制粘贴弹框挡住了那个文本的操作框,由于是测试机没办法截图说明,那就浅画一个图说明一下:

最后解决方案:将操作区移到了下方

.editor { min-height: 200px; display: flex; flex-direction: column-reverse; }.editor >>>.ql-container{ flex: 1; border-top: 1px solid #ccc; .ql-editor{ max-height: 100px; }}.editor >>>.ql-toolbar{ border-top: 0;}问题三:在移动端,操作栏文字变色的那个选项,点击打开选色区域之后,没办法完整展示在页面,必须去滚动,尝试利用z-index等css样式之后,还是无法展示,最后想出一个办法,将选色区域在上方弹出,代码如下:// 控制文字变色弹框位置.editor >>>.ql-picker-options{ top: 0px; transform: translate(0, -100%);}问题四:在移动端,安卓机只需点一次就可以获取富文本框焦点及打开文字变色选色区域,但是在ios环境需要双击才可以,这样的方式影响业务使用,在网上查了好久,排查发现导致这个问题是因为项目中引入了FastClick, 这个是解决移动端延迟300毫秒的优化,使用代码如下:

1、安装FastClick插件

npm install fastclick –save 或者yarn add fastclick

2、项目引入并使用FastClick插件

// main.js文件import FastClick from "fastclick";FastClick.attach(document.body);

在IOS手机上点击会存在延迟,因此需要引入 fastclick 来解决问题,但是此时会导致我们现在富文本出现的问题:点击富文本框无法立刻获取到焦点,解决办法: 利用fastclick 的 needsclick类名属性,文档里有: 代码如下:

// main.js// 1、引入import FastClick from "fastclick";// 2、解决移动端FastClick和editor冲突问题FastClick.prototype.needsClickForParent = function (target) { let parent = target.parentNode; if (parent == null) { return false; } let b = (/\bneedsclick\b/).test(parent.className) if (!b) { return this.needsClickForParent(parent); } else { return true; }}FastClick.prototype.needsClick = function (target) { if (this.needsClickForParent(target) === true) { return true; } switch (target.nodeName.toLowerCase()) { // Don't send a synthetic click to disabled inputs (issue #62) case 'button': case 'select': case 'textarea': if (target.disabled) { return true; } break; case 'input': // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) if ((deviceIsIOS && target.type === 'file') || target.disabled) { return true; } break; case 'label': case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames case 'video': return true; } return (/\bneedsclick\b/).test(target.className);};// 3、使用FastClick插件FastClick.attach(document.body);问题五:进入页面,直接点击下方操作项,输入文字过程中,会发现他与placeholder重叠了,发现是因为在输入过程中没有调用富文本的change事件:

但是,如果进来点击富文本获取焦点,去输入文字就是正常展示,因为他会调用change事件: 这个我研究了半天,也没发现什么好的办法,最后直接不要placeholder了(置空placeholder),哈哈哈,如果大佬们有什么好的办法一定要在评论区告诉我啊!!!!

四、总结:

如果后期出现其他适配问题我会在博客中进行补充,你们也可以把你们踩过的坑放在评论区,让我见识一下,哈哈哈,感谢各位阅读!

本文链接地址:https://www.jiuchutong.com/zhishi/283723.html 转载请保留说明!

上一篇:Fort Rock Valley Historical Homestead博物馆,俄勒冈 (© Prisma by Dukas Presseagentur GmbH/Alamy)

下一篇:蜻蜓翅膀特写 (© Azwar Thaufeeq/500px/Getty Images)(蜻蜓翅膀特写怎么画)

  • 触屏不灵敏怎么办(触屏不灵敏怎么调整vivo)

    触屏不灵敏怎么办(触屏不灵敏怎么调整vivo)

  • 华为手环7可以测血压吗(华为手环7可以发微信吗)

    华为手环7可以测血压吗(华为手环7可以发微信吗)

  • 苹果手机屏幕下面的那一条可以取消吗(苹果手机屏幕下方的横条怎么去掉)

    苹果手机屏幕下面的那一条可以取消吗(苹果手机屏幕下方的横条怎么去掉)

  • qq电话为什么关不了扬声器(qq如何关闭qq电话)

    qq电话为什么关不了扬声器(qq如何关闭qq电话)

  • ps图层置顶快捷键(ps图层快速置顶)

    ps图层置顶快捷键(ps图层快速置顶)

  • 看qq资料有痕迹吗(看qq资料会有访客记录吗)

    看qq资料有痕迹吗(看qq资料会有访客记录吗)

  • 手机防窥原理(手机防窥屏的原理是什么)

    手机防窥原理(手机防窥屏的原理是什么)

  • cad画线不显示长度(cad画线不显示长度显示坐标怎么办)

    cad画线不显示长度(cad画线不显示长度显示坐标怎么办)

  • 抖音点红心又取消对方知道吗(抖音点红心有什么用,挣钱吗)

    抖音点红心又取消对方知道吗(抖音点红心有什么用,挣钱吗)

  • 快猫为什么看得那么卡

    快猫为什么看得那么卡

  • 如何将横排改竖排文字(如何将横排改竖排视频)

    如何将横排改竖排文字(如何将横排改竖排视频)

  • gb kb mb哪个最大(kb mb gb比大小)

    gb kb mb哪个最大(kb mb gb比大小)

  • qq三代密保人脸识别取消了吗(qq人脸找密)

    qq三代密保人脸识别取消了吗(qq人脸找密)

  • 如何知道对方卸载陌陌(如何知道对方卸载了抖音)

    如何知道对方卸载陌陌(如何知道对方卸载了抖音)

  • 青少年模式怎么开启(青少年模式怎么强制解除)

    青少年模式怎么开启(青少年模式怎么强制解除)

  • 类纸膜可以贴在钢化膜上吗(类纸膜可以贴在普通膜上吗)

    类纸膜可以贴在钢化膜上吗(类纸膜可以贴在普通膜上吗)

  • 苹果xmax屏幕是2k的吗(苹果x max的屏幕是多大的)

    苹果xmax屏幕是2k的吗(苹果x max的屏幕是多大的)

  • 手机有回音是怎么回事(手机有回音是怎么回事华为)

    手机有回音是怎么回事(手机有回音是怎么回事华为)

  • 快手以前删的视频恢复(快手以前删的视频在哪里)

    快手以前删的视频恢复(快手以前删的视频在哪里)

  • iphonex热点电脑连不上(香港公益 沉迷赌博)

    iphonex热点电脑连不上(香港公益 沉迷赌博)

  • ios13.1beta4更新了什么(苹果手机更新13.4.1后好不好用)

    ios13.1beta4更新了什么(苹果手机更新13.4.1后好不好用)

  • 怎么用手机玩云顶(怎么用手机玩云电脑)

    怎么用手机玩云顶(怎么用手机玩云电脑)

  • Linux批量清空当前目录中的日志文件(linux批量删除)

    Linux批量清空当前目录中的日志文件(linux批量删除)

  • 在win7中,为什么经常提示虚拟内存不足?(win7为什么还有人用)

    在win7中,为什么经常提示虚拟内存不足?(win7为什么还有人用)

  • win11的控制面板在哪?Win11控制面板里面找系统安全步骤(怎么打开win11的控制面板)

    win11的控制面板在哪?Win11控制面板里面找系统安全步骤(怎么打开win11的控制面板)

  • 后浪是什么浪?(后浪是什么意思网络用语)

    后浪是什么浪?(后浪是什么意思网络用语)

  • 取得住宿发票的专用发票可以抵扣吗
  • 百旺税控盘反写不了怎么回事
  • 公司基本户如何注销
  • 多缴的企业所得税办理退税怎么处理
  • 金蝶k3生产领料单怎么导入
  • 公司装修费可以计入开办费吗
  • 盘盈的存货一般作为什么处理
  • 工会经费计提多少后不再提
  • 收回以前年度的应收账款,怎么进行账务处理?
  • 外币折算会计处理例题
  • 房地产企业销售未完工产品预计毛利率
  • 期末数未分配利润为负数的会计分录怎么处理?
  • 股权转让时其他股东不配合怎么转让
  • 支付境外销售佣金增值税扣缴
  • 哪些情况下超市销售发霉食品免责
  • 应交增值税进项税额转出
  • 资产处置收益的含义
  • 原材料入账价值合理损耗
  • 单位自办食堂为单位职工提供餐饮服务要交增值税吗
  • 暂估入库有时间限制吗
  • 对公账户一直没有流水怎么办
  • 商品从总仓到分拣要多久
  • 固定资产清理如何结转
  • 专项应付款费用化
  • 接受股权投资账务处理
  • js字符串转换为数字类型
  • vue-cli2.0
  • umount -l命令
  • 统计不同类型的数量
  • 进项转出分录处理
  • 无形资产转让的最低收费额如何确定?
  • 增值税为什么不能在税前扣除
  • 金蝶软件利润表公式怎么设置
  • 平行结转分步法的特点
  • 三方协议是什么意思?
  • 任意盈余公积金怎么计算
  • 定期定额征收税款
  • sql server 2005 win10
  • sqlserver实现分页查询
  • 外企可以申请高新技术
  • 银行提供资金来源
  • 所有者权益和负债的主要区别
  • 工程物资残料价值
  • 房产税土地使用税会计分录
  • 暂估入库的商品怎么做账
  • 增资如何做账务处理
  • 为什么其他权益工具投资处置价差计留存收益
  • 公司自己制造设备怎么办
  • 电商的成本构成包括
  • 医保卡收到钱
  • 期初建帐
  • 生产中产生的废油漆桶等危险废物应当作为什么贮存
  • 费用误计入固定资产
  • 背书转让为什么记应收票据
  • 在建工程二级科目待摊支出
  • 年报和汇算清缴的顺序
  • 根据企业会计准则第4号固定资产,企业可选用的折旧方法
  • 提前支付利息如何计算
  • 纳税人和负税人区别通俗易懂
  • ddl dml的区别
  • sql入门课程
  • 如何使用mac book
  • linux 使用
  • win2玩魔兽世界
  • qq突然显示windows登录
  • win8怎么设置
  • win10系统如何查找文件
  • win8如何打开任务管理器
  • win10登陆背景修改器
  • Android自定义控件高级进阶与精彩实例
  • python用于读取文本文件内容的方法
  • Python遍历文件夹及子文件夹中的所有文档
  • jQuery的 $.ajax防止重复提交的两种方法(推荐)
  • jquery导航菜单
  • android退出功能
  • jquery中有哪些dom操作?
  • 税务询问笔录属于什么证据
  • 出口退税备案单证目录
  • 工商登记是实质性的吗
  • 对于批发企业和零售连锁企业的质量验收,错误的是( )
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设