富文本编辑器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 相关文章推荐
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
May 07 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 Javascript
javascript中的 object 和 function小结
Aug 14 Javascript
jquery实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
JavaScript 自定义事件之我见
Sep 25 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
js针对图片加载失败的处理方法分析
Aug 24 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的FTP学习(四)
2006/10/09 PHP
flash用php连接数据库的代码
2011/04/21 PHP
php设置编码格式的方法
2013/03/05 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP调用其他文件中的类
2018/04/02 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
JS原型链怎么理解
2016/06/27 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python ftplib模块使用代码实例
2019/12/31 Python
python 实现图片裁剪小工具
2021/02/02 Python
运动会广播稿100字
2014/01/11 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
监察建议书
2015/02/04 职场文书