Я использую scrollIntoView, если мой текущий элемент не отображается в перспективе родителя.Если у моего элемента значение 'offsetTop' больше, чем у родительского offsetHeight, слегка просмотрите элемент, чтобы отобразить его в родительском представлении.
У меня ошибка при использовании scrollIntoView
в сафари.Частично поддерживается многими браузерами только в Chrome и Mozilla. Работает https://caniuse.com/#feat=scrollintoview
Еще одна проблема при использовании в обоих smooth
местах - это анимация с прерываниями.
Моя попытка:
const scrollToBottom = () => {
const elements = document.querySelectorAll(`[data-elementid='${action.payload.id}']`);
elements.forEach((element) => {
const menuContainer = element.parentElement.parentElement.offsetHeight;
const elementsHeight = element.offsetTop;
if (elementsHeight > menuContainer) {
element.scrollIntoView({
behavior: 'smooth',
block: 'end',
});
}
});
};
setTimeout(scrollToBottom, 200);
Я использую эту функцию в двух местах на странице.Как я могу заменить функцию scrollIntoView чем-то другим, чтобы сделать то же самое.