mark_edinoroglove
@mark_edinoroglove

Не работает event load во vue?

Почему скрипт срабатывает раз через раз? нормально срабатывает только когда делаю полную перезагрузку сайта, а потом снова работает как попало

import { onMounted } from 'vue';
onMounted(()=>{
    window.addEventListener('load', () => {
        const observer = new IntersectionObserver( ( entries ) => {
            entries.forEach( ( entry ) => {
                if ( entry.isIntersecting ) {
                    let target = entry.target;
                    target.classList.add( target.getAttribute( 'data-animation' ) + "-active" );
                    setTimeout(() => {
                        target.classList.remove( target.getAttribute( 'data-animation' ) + "-active" );
                        target.removeAttribute( 'data-animation' );
                    }, 1000);
                }
            })
        });

        const hiddenElements = document.querySelectorAll( '[data-animation]' );
        hiddenElements.forEach( ( el ) => observer.observe( el ) );
    })
})
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
не надо цепляться к window.load, все действия можно делать в mounted. ну и отлеплять событие в deforeUnmount.
Ну и дергать класслисты и атрибуты напрямую, а менять данные - это прям фуфуфу
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы