富文本编辑器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 13 Javascript
javascript对象之内置对象Math使用方法
Apr 16 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
Sep 14 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
javascript设计模式--策略模式之输入验证
Nov 27 Javascript
微信小程序 LOL 英雄介绍开发实例
Sep 30 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
Vue项目分环境打包的实现步骤
Apr 02 Javascript
一些可能会用到的Node.js面试题
Jun 15 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 Javascript
js实现网页版贪吃蛇游戏
Feb 22 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之第八天
2006/10/09 PHP
PHP 常见郁闷问题答解
2006/11/25 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
php生成shtml类用法实例
2014/12/09 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
linux下php上传文件注意事项
2016/06/11 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
js显示时间 js显示最后修改时间
2013/01/02 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
Python中Django 后台自定义表单控件
2017/03/28 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
大二学生学习个人自我评价
2014/01/19 职场文书
元旦晚会策划方案
2014/02/18 职场文书
气象学专业个人求职信
2014/03/15 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
建国大业观后感
2015/06/01 职场文书
亲情作文之母爱
2019/09/25 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers