是否可以在 Quilljs 编辑器中的文本区域下方显示工具栏选项?
Is it possible to display toolbar options below textarea in Quilljs editor?
如何在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>
以上代码的输出:
我想要输出如下:
如何完成以上结果。
我不明白为什么不只使用 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>
这样就可以了:
.ql-container {
display: flex;
flex-direction: column-reverse;
}
您可以使用 flexbox 来实现这一点。这样的事情应该可以解决问题:
<div class="d-flex flex-column-reverse">
<div id="quill-editor"></div>
</div>
另外请记住,您需要更新 Quill css 样式(边框等)
如何在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>
以上代码的输出:
我想要输出如下:
我不明白为什么不只使用 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>
这样就可以了:
.ql-container {
display: flex;
flex-direction: column-reverse;
}
您可以使用 flexbox 来实现这一点。这样的事情应该可以解决问题:
<div class="d-flex flex-column-reverse">
<div id="quill-editor"></div>
</div>
另外请记住,您需要更新 Quill css 样式(边框等)