创建一个自动调整大小并缩小的文本区域
挑战:之前尝试使用自动调整大小创建一个文本区域调整大小无法根据内容缩小文本区域
解决方案:
原始线程提供的代码根据其内容调整文本区域的高度。但是,它没有考虑内容删除,从而导致 clientHeight 值不正确。
要克服此限制,需要更全面的解决方案:
function FitToContentWithShrink(id, maxHeight) { var text = id && id.style ? id : document.getElementById(id); if (!text) return; var newHeight = text.scrollHeight; var currentHeight = text.clientHeight; // Check if the content has changed if (newHeight !== currentHeight) { if (newHeight > currentHeight) { // If the new height is greater than the current height, expand text.style.height = newHeight + "px"; } else if (newHeight < currentHeight) { // If the new height is less than the current height, shrink text.style.height = newHeight + "px"; } } }
好处:
用法:
window.onload = function () { document.getElementById("ta").onkeyup = function () { FitToContentWithShrink(this, 500); }; };
额外注意:
在严格模式下应用 JavaScript 不会影响此解决方案的功能。
以上是如何创建一个在内容删除时缩小的自动调整大小的文本区域?的详细内容。更多信息请关注PHP中文网其他相关文章!