富文本编辑器vue2-editor实现全屏功能
vue2-editor非常不错,可惜并未带全屏功能,自己实现了一个,供大家参考。
实现思路:自定义模块。
1.定义全屏模块Fullscreen
/** *编辑器的全屏实现 */ importnoScrollfrom'no-scroll' exportdefaultclassFullscreen{ 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-editorql-blankeditor-fullscreen' noScroll.on() }else{ this.fullscreen=false this.editorContainer.className='ql-editorql-blank' noScroll.off() } } }
Fullscreen.js
2.通过编辑器的选项注册模块,我是放在了全局的Global.vue中,其他页面直接引用这个选项
constEDITOR_OPTIONS={ modules:{ fullscreen:{}, toolbar:{ container:[ [{header:[false,1,2,3,4,5,6]}], ["bold","italic","underline","strike"],//toggledbuttons [ {align:""}, {align:"center"}, {align:"right"}, {align:"justify"} ], ["blockquote","code-block"], [{list:"ordered"},{list:"bullet"},{list:"check"}], [{indent:"-1"},{indent:"+1"}],//outdent/indent [{color:[]},{background:[]}],//dropdownwithdefaultsfromtheme ["link","image","video"], ["clean"],//removeformattingbutton ['fullscreen'] ], handlers:{ fullscreen(){ this.quill.getModule('fullscreen').handle() } } } } }
3.在页面中引用
import{VueEditor,Quill}from"vue2-editor" importFullscreenfrom'../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:0auto; overflow-y:auto; } } .ql-fullscreen{ background:url('./assets/images/fullscreen.svg')no-repeatcenter!important; }
总结
以上所述是小编给大家介绍的富文本编辑器vue2-editor实现全屏功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!