Как сделать плавный скролл для динамически сгенерированного radio?
Как сделать плавный скролл к определенному блоку для динамически сгенерированного radio при его активации? Для обычных, которые по-умолчанию заданы через HTML, работает прикрепленный код, но когда его генерирует JS, это не срабатывает.
(() => {
const handler = evt => {
if (evt.target.checked)
tabs.scrollIntoView({ block: 'start', behavior: 'smooth' });
};
const tabs = document.querySelector('.content');
for (let cbox of document.querySelectorAll('.downers'))
cbox.addEventListener('change', handler);
})();
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Поставьте прослушку событий на обертку Ваших input'ов и проверяйте куда пришелся клик:
const handleClick = event => {
if (event.target.tagName.toLowerCase() === "input") {
// ... ваша логика
// например scroll до конкретного <input />
// if (event.target.checked) {
// event.target.scrollIntoView({ block: "start", behavior: "smooth" })
//}
console.log(event.target) // input на который пришелся клик
}
}
document.querySelector(".wrapper").addEventListener("click", handleClick, false)
Это даст Вам возможность прослушивать события в input'ах которые были добавлены динамически.