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