富文本编辑器vue2-editor实现全屏功能
程序员文章站
2022-06-26 21:41:52
vue2-editor非常不错,可惜并未带全屏功能,自己实现了一个,供大家参考。 实现思路:自定义模块。 1. 定义全屏模块Fullscreen /** * 编辑器的全屏实现 */ import noScroll from 'no-scroll' export default class Fulls ......
vue2-editor非常不错,可惜并未带全屏功能,自己实现了一个,供大家参考。
实现思路:自定义模块。
1. 定义全屏模块fullscreen
/** * 编辑器的全屏实现 */ import noscroll from 'no-scroll' export default class fullscreen { constructor (quill, options = {}) { this.quill = quill this.options = options this.fullscreen = false this.editorcontainer = this.quill.container.parentnode.parentnode } handle () { if (! this.fullscreen) { this.fullscreen = true this.editorcontainer.classname = 'ql-editor ql-blank editor-fullscreen' noscroll.on() }else{ this.fullscreen = false this.editorcontainer.classname = 'ql-editor ql-blank' noscroll.off() } } }
2. 通过编辑器的选项注册模块,我是放在了全局的global.vue中,其他页面直接引用这个选项
const editor_options = { modules: { fullscreen: {}, toolbar: { container: [ [{ header: [false, 1, 2, 3, 4, 5, 6] }], ["bold", "italic", "underline", "strike"], // toggled buttons [ { align: "" }, { align: "center" }, { align: "right" }, { align: "justify" } ], ["blockquote", "code-block"], [{ list: "ordered" }, { list: "bullet" }, { list: "check" }], [{ indent: "-1" }, { indent: "+1" }], // outdent/indent [{ color: [] }, { background: [] }], // dropdown with defaults from theme ["link", "image", "video"], ["clean"], // remove formatting button ['fullscreen'] ], handlers: { fullscreen() { this.quill.getmodule('fullscreen').handle() } } } } }
3. 在页面中引用
<vue-editor usecustomimagehandler @imageadded="handleimageadded" v-model="entity.content" :editoroptions="$global.editor_options" class="editor"> </vue-editor>
import {vueeditor, quill} from "vue2-editor" import fullscreen from '../fullscreen' quill.register('modules/fullscreen', fullscreen)
4. 最后在全局样式中加入全屏的样式,我这个样式中控制了编辑器的高度,默认是自适应高度的。
.editor .ql-editor{ height: 300px; } .editor-fullscreen{ background: white; margin: 0 !important; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 100000; .ql-editor{ height: 100%; } .fullscreen-editor { border-radius: 0; border: none; } .ql-container { height: calc(100vh - 3rem - 24px) !important; margin: 0 auto; overflow-y: auto; } } .ql-fullscreen{ background:url('./assets/images/fullscreen.svg') no-repeat center!important; }
上一篇: 联想M7450F一体机出现“碳粉低”提示该怎么去掉?
下一篇: 详解Java抽象类与普通类的区别
推荐阅读
-
django富文本编辑器的实现示例
-
Asp.Net Core中配置使用Kindeditor富文本编辑器实现图片上传和截图上传及文件管理和上传(开源代码.net core3.0)
-
荐 手撸实现一个富文本编辑器
-
不到200行 JavaScript 代码实现富文本编辑器的方法
-
ASP.NET MVC实现layui富文本编辑器应用
-
富文本编辑器vue2-editor实现全屏功能
-
Django集成富文本编辑器summernote的实现步骤
-
React Ant Design+Node.js Express+Mysql实现后端分页(带富文本编辑器)
-
ajax php实现给fckeditor文本编辑器增加图片删除功能
-
在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)