You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用原生JS实现Bootstrap5页面中两个textarea高度实时同步匹配

完全可以通过原生JS实现,不需要额外引入jQuery或其他JS框架,仅靠原生API即可完成两个textarea的高度同步需求。

实现思路

通过原生ResizeObserver接口监听两个textarea的尺寸变化,任意一个元素高度发生改变(包含用户拖拽调整、输入内容撑开高度两种场景)时,自动将高度同步到另一个元素即可。该API兼容所有现代主流浏览器,适配Bootstrap 5的样式规则无需额外修改。

实现代码

直接将以下代码插入到页面中(建议放在DOM元素加载完成后执行,比如放到</body>标签之前即可):

// 获取两个textarea元素
const editTextarea = document.getElementById('note_content');
const previewTextarea = document.getElementById('note_content_preview');

// 高度同步方法
function syncHeight(source, target) {
  target.style.height = `${source.offsetHeight}px`;
}

// 注册尺寸变化监听器
const heightObserver = new ResizeObserver((entries) => {
  entries.forEach(entry => {
    const changedEl = entry.target;
    const targetEl = changedEl === editTextarea ? previewTextarea : editTextarea;
    syncHeight(changedEl, targetEl);
  });
});

// 给两个textarea都绑定监听
heightObserver.observe(editTextarea);
heightObserver.observe(previewTextarea);

// 初始加载时同步一次高度,避免初始样式差异
syncHeight(editTextarea, previewTextarea);

效果说明

配置完成后,你拖拽任意一个textarea的右下角调整高度,另一个都会自动匹配相同高度;同时在左侧输入框输入内容导致输入框高度自动撑开时,右侧预览框也会同步调整高度。

并排摆放的两个textarea元素

内容的提问来源于stack exchange,提问作者Amir Rachum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:36:04