富文本编辑器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实现table单双行不同显示并能单行选中
Jul 25 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
JavaScript Scoping and Hoisting 翻译
Jul 03 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
js实现文本框选中的方法
May 26 Javascript
实例解析Array和String方法
Dec 14 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
详解Layer弹出层样式
Aug 21 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
Vue实现6位数密码效果
Aug 18 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
JS实现秒杀倒计时特效
Jan 02 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
在Python中使用元类的教程
2015/04/28 Python
讲解Python中的标识运算符
2015/05/14 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
网络技术专业求职信
2014/02/18 职场文书
开业典礼主持词
2014/03/21 职场文书
治超工作实施方案
2014/05/04 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
大学生军训感言
2015/08/01 职场文书
python自动化八大定位元素讲解
2021/07/09 Python
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers