富文本编辑器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的计算文本框字数的代码
Jun 06 Javascript
js数组操作常用方法
May 08 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
Jun 25 Javascript
Bootstrap carousel轮转图的使用实例详解
May 17 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
vue利用axios来完成数据的交互
Mar 23 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
Python中return self的用法详解
2018/07/27 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Python selenium的基本使用方法分析
2019/12/21 Python
Django 批量插入数据的实现方法
2020/01/12 Python
python动态文本进度条的实例代码
2020/01/22 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
Python 中如何写注释
2020/08/28 Python
Python 高效编程技巧分享
2020/09/10 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
春季防火方案
2014/05/10 职场文书
会员卡清退活动总结
2014/08/27 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python