【问题标题】:Fullscreen button for Quill Editor?Quill Editor 的全屏按钮?
【发布时间】:2016-11-14 06:07:00
【问题描述】:

我正在使用 Quill Editor。到目前为止还不错。我的问题是,有什么方法可以通过工具栏中的按钮使 Quill Editor 全屏显示(某种无干扰模式)? 如果不是,我该如何自行实施?

【问题讨论】:

    标签: quill


    【解决方案1】:

    要全屏显示,我认为使用库是最简单的,例如 screenfull.js - https://github.com/sindresorhus/screenfull.js/

    至于在 Quill 工具栏中添加自定义按钮,我找到了两种方法。

    方法一:

    至少可以通过工具栏选项直接添加简单的按钮。像这样的东西: http://codepen.io/nik10110/pen/PbyNoW

    <div id="editor"></div>
    
    <style>
      #editor {
        height: 375px;
      }
    
      .ql-omega:after {
        content: "Ω";
      }
    </style>
    
    <script type="text/javascript">
      var toolbarOptions = [
        [{ 'font': [] }],
        ['bold', 'italic', 'underline'],
        ['blockquote', 'code-block'],
        [{ 'list': 'ordered'}, { 'list': 'bullet' }],
        [{ 'align': [] }],
        ['omega']
      ];
    
      var quill = new Quill('#editor', {
        modules: {
          toolbar: toolbarOptions
        },
        theme: 'snow'
      });
    
      var customButton = document.querySelector('.ql-omega');
      customButton.addEventListener('click', function() {
        if (screenfull.enabled) {
          console.log('requesting fullscreen');
          screenfull.request();
        } else {
          console.log('Screenfull not enabled');
        }
      });
    </script>
    

    方法二:

    将工具栏设置为使用自定义 Html 而不是通过 javascript 指定按钮。官方文档(http://quilljs.com/docs/modules/toolbar/)对此非常详细。

    这是一个经过调整的代码示例:

    <div id="toolbar">
      <!-- Add buttons as you would before -->
      <button class="ql-bold"></button>
      <button class="ql-italic"></button>
    
      <!-- But you can also add your own -->
      <button id="toggle-fullscreen"></button>
    </div>
    <div id="editor"></div>
    
    <script type="text/javascript">
    var quill = new Quill('#editor', {
      modules: {
        toolbar: '#toolbar'
      }
    });
    
    var customButton = document.querySelector('#toggle-fullscreen');
    customButton.addEventListener('click', function() {
      if (screenfull.enabled) {
        console.log('requesting fullscreen');
        screenfull.request();
      } else {
        console.log('Screenfull not enabled');
      }
    });
    </script>
    

    【讨论】:

    • 我在我的项目中尝试了这个选项。我只需要为我的表单字段输入全屏,即当我单击 ... 图标时,它应该使用富文本而不是整页缩放我的文本区域。你能推荐任何选项吗?
    • 我认为您可以将一个元素传递给 screenfull.toggle 来做到这一点。如果您需要更多帮助,我建议您创建一个新问题。
    • 我创建了一个,你可以看看stackoverflow.com/questions/54089715/…。如果信息不够,请在评论中告诉我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2012-05-14
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多