富文本编辑器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 相关文章推荐
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
js+css在交互上的应用
Jul 18 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
Aug 01 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
jquery单行文字向上滚动效果的实现代码
Sep 05 Javascript
jquery分页插件jquery.pagination.js使用方法解析
Apr 01 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
用node开发并发布一个cli工具的方法步骤
Jan 03 Javascript
Nuxt的路由动画效果案例
Nov 06 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和XSS跨站攻击的防范
2007/04/17 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
python 查找字符串是否存在实例详解
2017/01/20 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
python3.7添加dlib模块的方法
2020/07/01 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
中考学习决心书
2015/02/04 职场文书
亲戚关系证明
2015/06/24 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
教师教育心得体会
2016/01/19 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python