富文本编辑器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学习笔记6 prototype的提出
Jan 11 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
用svg制作富有动态的tooltip
Jul 17 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
Web Uploader文件上传插件使用详解
May 10 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 Javascript
手把手教您实现react异步加载高阶组件
Apr 07 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
angularjs 页面自适应高度的方法
2018/01/17 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
python用requests实现http请求代码实例
2019/10/31 Python
python的range和linspace使用详解
2019/11/27 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
4s客服专员岗位职责
2013/12/01 职场文书
高二地理教学反思
2014/01/24 职场文书
六一亲子活动总结
2014/07/01 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
简爱读书笔记
2015/06/26 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers