首页 > 编程 > JavaScript > 正文

富文本编辑器vue2-editor实现全屏功能

2019-11-19 11:28:15
字体:
来源:转载
供稿:网友

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()  } }}

Fullscreen.js

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; }

总结

以上所述是小编给大家介绍的富文本编辑器vue2-editor实现全屏功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表