javascript 在Quilljs编辑器中,是否可以在文本区域下方显示工具栏选项?

b4wnujal  于 2023-04-04  发布在  Java
关注(0)|答案(4)|浏览(181)

如何在textarea下面显示工具栏。
我的代码:

var quill = new Quill('#txtMessage', {
  theme: 'snow',
  modules: {
    toolbar: {
      container: [
        ['bold', 'italic', 'underline'],
        [{
          'list': 'ordered'
        }, {
          'list': 'bullet'
        }],
        ['clean'],
        ['code-block'],
        [{
          'variables': ['{Name}', '{Email}']
        }],
      ],
      handlers: {
        "variables": function(value) {
          if (value) {
            const cursorPosition = this.quill.getSelection().index;
            this.quill.insertText(cursorPosition, value);
            this.quill.setSelection(cursorPosition + value.length);
          }
        }
      }
    }
  }
});

// Variables
const placeholderPickerItems = Array.prototype.slice.call(document.querySelectorAll('.ql-variables .ql-picker-item'));
placeholderPickerItems.forEach(item => item.textContent = item.dataset.value);
document.querySelector('.ql-variables .ql-picker-label').innerHTML = 'Variables' + document.querySelector('.ql-variables .ql-picker-label').innerHTML;
<script src="//cdn.quilljs.com/1.3.6/quill.js"></script>
<link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"/>
<link href="//cdn.quilljs.com/1.3.6/quill.bubble.css" rel="stylesheet"/>

<div id="txtMessage"></div>

上面代码的输出:

我希望输出如下:

如何实现上述结果。

z3yyvxxp

z3yyvxxp1#

这就是诀窍:

.ql-container {
  display: flex;
  flex-direction: column-reverse; 
}
wz1wpwve

wz1wpwve2#

我不明白为什么不使用CSS。
大概是这样的

var quill = new Quill('#editor-container', {
  modules: {
    toolbar: [
      [{
        header: [1, 2, false]
      }],
      ['bold', 'italic', 'underline'],
      ['image', 'code-block']
    ]
  },
  placeholder: 'Compose an epic...',
  theme: 'snow' // or 'bubble'
});
#editor-container {
  height: 375px;
}

.editor-wrapper {
  position: relative;
}

.ql-toolbar {
  position: absolute;
  bottom: 0;
  width: 100%;
  transform: translateY(100%);
}
<script src="//cdn.quilljs.com/1.3.6/quill.js"></script>
<link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"/>
<link href="//cdn.quilljs.com/1.3.6/quill.bubble.css" rel="stylesheet"/>
<div class="editor-wrapper">
  <div id="editor-container">
  </div>
</div>

https://codepen.io/moshfeu/pen/wXwqmg

ldfqzlk8

ldfqzlk83#

你可以使用flexbox来实现这一点。像这样的东西应该可以做到这一点:

<div class="d-flex flex-column-reverse">
   <div id="quill-editor"></div>
</div>

还要记住你需要更新QuillCSS样式(边框等)

g6ll5ycj

g6ll5ycj4#

<ReactQuill className="editor" />
.editor .ql-toolbar { 
position: absolute; 
top: calc(100% + 10px); 
}
</style>```

相关问题