Как остановить Angular 9, пропуская элемент span с прикрепленной функцией Js?

Я создал элемент span <span id="scroll-top"></span>, который отображает изображение со стрелкой вверху, когда пользователь прокручивает вниз и прокручивает пользователя вверх при нажатии, функция My JS отлично работает, когда вы запускаете ее как проект HTML, но angular 9 не поднимает его (я я конвертирую свой HTML-проект в angular, если вам интересно), я перепроверил свои ссылки (css и js на angular), и они в порядке, как ни странно, я использовал много функций js, но это единственный угловой 9 пропусков. В чем может быть проблема?

CSS-

 scroll-top{width:40px;height:40px;z-index:99;position:fixed;bottom:100px;right:30px;display:none;cursor:pointer;background:url(../images/slider/top.png) no-repeat}

JS-

$(document).ready((function(){$(window).scroll((function(){$(this).scrollTop()>40?$("#scroll-top").fadeIn():$("#scroll-top").fadeOut()})),$("#scroll-top").click((function(){$("html, body").animate({scrollTop:0},1e3)}))}));

Использовал ли я синтаксис, который не поддерживает angular 9?


person Ashen Jayawardena    schedule 14.05.2020    source источник
comment
Что ж, элемент #scroll-top может не отображаться, когда срабатывает событие ready. Angular работает с другим жизненным циклом рендеринга. Это распространенная проблема при попытке поместить jQuery в проекты Angular. Как минимум вместо этого сделайте прокрутку к верхней кнопке/элементу угловым компонентом и используйте событие щелчка для прокрутки вверх. Также вам следует рассмотреть возможность использования DOCUMENT.   -  person Alexander Staroselsky    schedule 14.05.2020
comment
В противном случае, если вы должны использовать jQuery, вы можете использовать Делегирование событий для удаления из такой элемент, как body, который наверняка будет существовать на ready.   -  person Alexander Staroselsky    schedule 14.05.2020
comment
Если преобразовать кнопку в угловой компонент, означает ли это, что я могу выполнить функцию прокрутки вверх через js?   -  person Ashen Jayawardena    schedule 14.05.2020
comment
Сделав шаг назад, вы понимаете проблему, пытаясь запросить #scroll-top в этом приложении Angular? Учитывая, что Angular отображает компонент HTML в своем жизненном цикле? Проблема в том, что элемент может и, вероятно, не существует в момент выполнения jQuery ready (другой жизненный цикл)?   -  person Alexander Staroselsky    schedule 14.05.2020