富文本编辑器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 相关文章推荐
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
Javascript学习笔记之相等符号与严格相等符号
Nov 23 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
Oct 14 Javascript
jquery精度计算代码 jquery指定精确小数位
Feb 06 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
koa router 多文件引入的方法示例
May 22 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
js作用域及作用域链工作引擎
Jul 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输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
执行iframe中的javascript方法
2008/10/07 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
webpack v4 从dev到prd的方法
2018/04/02 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
Python获取当前时间的方法
2014/01/14 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
励志演讲稿500字
2014/08/21 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
法院答辩状格式
2015/05/22 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
2019秋季运动会口号
2019/06/25 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python