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

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实现全屏功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 富文本编辑器vue2-editor实现全屏功能 的全部内容, 来源链接: utcz.com/z/350836.html

回到顶部