vue2-editor非常不错,可惜并未带全屏功能,自己实现了一个,供大家参考。

实现思路:自定义模块。

1. 定义全屏模块Fullscreen

  1. /**
  2. * 编辑器的全屏实现
  3. */
  4. import noScroll from 'no-scroll'
  5.  
  6. export default class Fullscreen {
  7. constructor (quill, options = {}) {
  8. this.quill = quill
  9. this.options = options
  10. this.fullscreen = false
  11. this.editorContainer = this.quill.container.parentNode.parentNode
  12. }
  13.  
  14. handle () {
  15. if (! this.fullscreen) {
  16. this.fullscreen = true
  17. this.editorContainer.className = 'ql-editor ql-blank editor-fullscreen'
  18. noScroll.on()
  19. }else{
  20. this.fullscreen = false
  21. this.editorContainer.className = 'ql-editor ql-blank'
  22. noScroll.off()
  23. }
  24. }
  25. }

Fullscreen.js

2. 通过编辑器的选项注册模块,我是放在了全局的Global.vue中,其他页面直接引用这个选项

  1. const EDITOR_OPTIONS = {
  2. modules: {
  3. fullscreen: {},
  4. toolbar: {
  5. container: [
  6. [{ header: [false, 1, 2, 3, 4, 5, 6] }],
  7. ["bold", "italic", "underline", "strike"], // toggled buttons
  8. [
  9. { align: "" },
  10. { align: "center" },
  11. { align: "right" },
  12. { align: "justify" }
  13. ],
  14. ["blockquote", "code-block"],
  15. [{ list: "ordered" }, { list: "bullet" }, { list: "check" }],
  16. [{ indent: "-1" }, { indent: "+1" }], // outdent/indent
  17. [{ color: [] }, { background: [] }], // dropdown with defaults from theme
  18. ["link", "image", "video"],
  19. ["clean"], // remove formatting button
  20. ['fullscreen']
  21. ],
  22. handlers: {
  23. fullscreen() {
  24. this.quill.getModule('fullscreen').handle()
  25. }
  26. }
  27. }
  28. }
  29. }

Global.vue

3. 在页面中引用

  1. <vue-editor
  2. useCustomImageHandler
  3. @imageAdded="handleImageAdded"
  4. v-model="entity.content"
  5. :editorOptions="$global.EDITOR_OPTIONS"
  6. class="editor">
  7. </vue-editor>
  1. import {VueEditor, Quill} from "vue2-editor"
  2. import Fullscreen from '../Fullscreen'
  3.  
  4. Quill.register('modules/fullscreen', Fullscreen)

4. 最后在全局样式中加入全屏的样式,我这个样式中控制了编辑器的高度,默认是自适应高度的。

  1. .editor .ql-editor{
  2. height: 300px;
  3. }
  4. .editor-fullscreen{
  5. background: white;
  6. margin: 0 !important;
  7. position: fixed;
  8. top:;
  9. left:;
  10. width: 100%;
  11. height: 100%;
  12. z-index:;
  13. .ql-editor{
  14. height: 100%;
  15. }
  16. .fullscreen-editor {
  17. border-radius:;
  18. border: none;
  19. }
  20. .ql-container {
  21. height: calc(100vh - 3rem - 24px) !important;
  22. margin: 0 auto;
  23. overflow-y: auto;
  24. }
  25. }
  26. .ql-fullscreen{
  27. background:url('./assets/images/fullscreen.svg') no-repeat center!important;
  28. }

App.vue

富文本编辑器vue2-editor实现全屏功能的更多相关文章

  1. 给Django后台富文本编辑器添加上传文件的功能

    使用富文本编辑器上传的文件是要放到服务器上的,所以这是一个request.既然是一个request,就需要urls.py进行转发请求views.py进行处理.views.py处理完了返回一个文件所在的 ...

  2. vue 富文本编辑器 项目实战用法

    1.挑个富文本编辑器 首先针对自己项目的类型,确定自己要用啥编辑器. 1.1 wangeditor 如果一般类似博客这种项目不需要花里胡哨的,功能也不要求贼多的,推荐一下wangeditor(点击跳转 ...

  3. 富文本编辑器 - wangEditor 上传图片

    效果: . 项目结构图: wangEditor-upload-img.html代码: <html> <head> <title>wangEditor-图片上传< ...

  4. wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费(2)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. JS编写自己的富文本编辑器

    富文本编辑器,网上有很多功能齐全种类丰富的如百度的Ueditor,简单适用型的如WangEditor等等.在经过一番挑选后,我发现都不适用现在的项目,然后决定自己造轮子玩玩.富文本编辑器中主要涉及到J ...

  6. 富文本编辑器防止xss注入javascript版

    富文本编辑器:ueditor 其实富文本编辑器已经有防止xss注入功能,但是你服务端程序在接收的时候在做一次转义,否则有可能然后前端验证直接提交数据导致被xss攻击. 为了节省后端程序开销则在前端 显 ...

  7. 百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式     你可以去百度UEditor ...

  8. (转)淘淘商城系列——KindEditor富文本编辑器的使用

    http://blog.csdn.net/yerenyuan_pku/article/details/72809794 通过上文的学习,我们知道了怎样解决KindEditor富文本编辑器上传图片时的浏 ...

  9. (转)学习淘淘商城第二十二课(KindEditor富文本编辑器的使用)

    http://blog.csdn.net/u012453843/article/details/70184155 上节课我们一起学习了怎样解决KindEditor富文本编辑器上传图片的浏览器兼容性问题 ...

随机推荐

  1. SQL server 数据存储过程

    创建视图

  2. C#语言 数组

  3. 全文索引--自己定义chinese_lexer词典

    本文来具体解释一下怎样自己定义chinese_lexer此法分析器的词典 初始化数据 create table test2 (str1 varchar2(2000),str2varchar2(2000 ...

  4. [leetcode] database解题记录

    175 Combine Two Tables 题目:左连接Person表和Address表. select FirstName,LastName,City,State from Person p le ...

  5. 【IOS工具类】IOS9的CoreSpotlight(OC语言)

    什么是CoreSpotlight?就是在IOS9下.让用户在下拉的搜索页面里能够搜索到你的应用. #import <Foundation/Foundation.h> @interface ...

  6. 微软开源 Try .NET - 创建交互式.NET文档

    微软近日开源了一个新平台--Try .NET,该平台可以让开发者在线上编写并运行 .NET 代码.微软介绍,Try .NET 是一个可嵌入的代码运行器,不仅可以直接在线上对自己或者他人的代码进行编辑. ...

  7. STL review:vector & string & map & struct

    I.vector 1.头文件:#include<vector>                        //容器vector是一个能实现随机存取.插入删除的动态数组,还可以当栈使. ...

  8. 简单的shell脚本编写

    http://www.cnblogs.com/wuyuegb2312/p/3399566.html

  9. 域名ip自动跳转 跳转指定页面的js

    域名ip自动跳转 跳转指定页面的js 为了应对百度审核,需要客户的网站在个别地区跳转到另一个页面,就搞到了这段代码,屡试不爽,超实用.下面把地址换成你要访问的网站url地址或者文件url地址即可.超实 ...

  10. codeforces 435 B. Pasha Maximizes 解题报告

    题目链接:http://codeforces.com/problemset/problem/435/B 题目意思:给出一个最多为18位的数,可以通过对相邻两个数字进行交换,最多交换 k 次,问交换 k ...