From 7c5e797f875a5f64067f84049a542d96e4874d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 2 Nov 2021 10:38:03 +0000 Subject: [PATCH] Maintain scroll position while a textarea is resized --- src/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/index.ts b/src/index.ts index c058549..6f525de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -64,6 +64,8 @@ export default function autosize(textarea: HTMLTextAreaElement, {viewportMarginB const adjustedViewportMarginBottom = bottom < viewportMarginBottom ? bottom : viewportMarginBottom textarea.style.maxHeight = `${maxHeight - adjustedViewportMarginBottom}px` + const scrollPosition = document.documentElement.scrollTop + const container = textarea.parentElement if (container instanceof HTMLElement) { const containerHeight = container.style.height @@ -73,6 +75,7 @@ export default function autosize(textarea: HTMLTextAreaElement, {viewportMarginB container.style.height = containerHeight const options = map.get(textarea) || {} options.previousHeight = textarea.style.height + document.documentElement.scrollTop = scrollPosition } const options = map.get(textarea) || {}