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


Posted in Javascript onMay 26, 2019

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

Javascript 相关文章推荐
在Javascript中定义对象类别
Dec 22 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 Javascript
jquery Tab效果和动态加载的简单实例
Dec 11 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
javascript 闭包详解
Jul 02 Javascript
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jQuery创建及操作xml格式数据示例
May 26 jQuery
深入理解JavaScript的async/await
Aug 05 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
vue实现简单瀑布流布局
May 28 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 #Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 #Javascript
vue指令做滚动加载和监听等
May 26 #Javascript
vxe-table vue table 表格组件功能
May 26 #Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 #Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 #Javascript
vue项目打包后怎样优雅的解决跨域
May 26 #Javascript
You might like
php程序效率优化的一些策略小结
2010/07/17 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php异常处理方法实例汇总
2015/06/24 PHP
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Python爬取qq空间说说的实例代码
2018/08/17 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
应用英语专业自荐信
2014/01/26 职场文书
打架检讨书500字
2014/01/29 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers