Autoresize 插件可自动调整编辑器高度,使其与内容相匹配。这创造了一种更直观的编辑体验,编辑器会随内容自然地增大或缩小。设置 max_height 选项可让您继续控制内容何时变为可滚动状态。
交互式演示
HTML
<div id="container">
<textarea id="autoresize">
<h1>Autoresize 插件演示</h1>
<p>此演示展示了 autoresize 插件的实际效果。编辑器会根据内容自动调整高度。请尝试添加或删除内容以查看动态调整大小的行为。</p>
<div>
<div><strong>工作原理:</strong></div>
<ul>
<li>输入或粘贴内容,编辑器将自动扩展</li>
<li>删除内容,编辑器将自动收缩</li>
<li>编辑器会遵循设置的 min/max 高度限制</li>
</ul>
</div>
</textarea>
</div>JS
tinymce.init({
selector: 'textarea#autoresize',
plugins: "autoresize lists code",
toolbar: 'undo redo | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent',
// Autoresize 选项
min_height: 100,
max_height: 400,
autoresize_bottom_margin: 20,
autoresize_overflow_padding: 10,
});基本设置
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize'
});有关使用模块打包器打包此插件的信息,请参阅 Bundling TinyMCE - 概述。
工作原理
Autoresize 插件会监控内容变化并自动调整编辑器高度以适应内容。启用时:
编辑器根据
min_height选项指定的最小高度进行初始化和渲染。添加内容时,编辑器会垂直扩展
当达到
max_height限制时,编辑器停止扩展编辑器的
resize手柄将被移除。
选项
这些设置控制 autoresize 行为,包括高度限制、内边距和外边距。
autoresize_bottom_margin
此选项允许您指定编辑器 body 底部的 padding 大小,该值在初始化时设置。
类型: Number
默认值: 50
示例:添加底部外边距以获得更好的内容间距
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize',
autoresize_bottom_margin: 60 // 50px 是默认值
});示例:将底部外边距设置为零
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize',
autoresize_bottom_margin: 0
});autoresize_overflow_padding
此选项允许您指定编辑器 body 两侧的 padding 大小,该值在初始化时设置。
类型: Number
默认值: 1
示例:添加水平内边距以获得更好的内容间距
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize',
autoresize_overflow_padding: 50
});示例:将水平内边距设置为零
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize',
autoresize_overflow_padding: 0
});max_height
max_height 选项的行为取决于是否启用 autoresize 插件:
未启用
autoresize插件时:设置用户可以通过拖动右下角的 resize 手柄手动调整整个 TinyMCE 界面的最大高度。启用
autoresize插件时:设置编辑器在添加内容时可自动扩展的最大高度。
类型: Number
示例:使用 max_height
tinymce.init({
selector: 'textarea', // 根据 HTML 更改此值
plugins: 'autoresize',
max_height: 600
});
如果
resize选项设置为false,则调整大小的手柄将被禁用,用户无法手动调整编辑器大小。启用
autoresize插件时,resize选项默认为false。值以像素为单位指定,不带单位。
如果在使用
autoresize插件时未设置max_height,编辑器将默认采用标准的max_height行为(无限扩展高度)。
min_height
min_height 选项的行为取决于是否启用 autoresize 插件:
未启用
autoresize插件时:设置用户可以通过拖动右下角的 resize 手柄手动缩小整个 TinyMCE 界面的最小高度。
使用 autoresize 插件:设置当内容被移除时,编辑器自动收缩到的最小高度。
类型: Number
默认值: 100
示例:使用 min_height
tinymce.init({
selector: 'textarea', // 根据你的HTML更改此值
plugins: 'autoresize',
min_height: 100
});
如果
resize选项设置为false,则调整大小的句柄将被禁用,用户将无法手动调整编辑器大小。当启用
autoresize插件时,resize选项默认为false。值以像素为单位指定,不带单位。
将
min_height设置得过低可能会导致移动设备上的可用性问题。如果在使用
autoresize插件时未设置min_height,编辑器将默认使用标准的min_height值,即100像素。
命令
Autoresize 插件提供了以下 TinyMCE 命令。
| 命令 | 描述 |
|---|---|
mceAutoResize | 自动调整编辑器大小以适应其当前内容。 |
手动触发 autoresize
可以使用 mceAutoResize 命令手动触发 autoresize 功能。这在以下情况下很有用:
内容被动态添加或删除时
外部更改后需要重新调整编辑器大小
你想确保编辑器大小在特定时刻与其内容匹配
// 调整活动编辑器的大小
tinymce.activeEditor.execCommand('mceAutoResize');
// 通过ID调整特定编辑器的大小
tinymce.get('my-editor-id').execCommand('mceAutoResize');