Логика jquery на ванильный javascript
Есть логика, написанная на jquery. Я немного увлекся этим jquery в последнее время, и подзабыл некоторые моменты js. У меня пока не совсем получается преобразовать свою логику jquery на js. Я представлю код на jquery и на js. Помогите пожалуйста разобраться, что я делаю не так?! Очень надеюсь на вашу помощь.
jquery:
$(window).scroll(function (event) {
var top = $(window).scrollTop();
var height_nav = $(".nav").height();
if (top >= height_nav+22) {
$(".sidebar").css('top', 0);
} else {
$(".sidebar").css('top', height_nav-top+22);
}
});
js:
var top = window.scrollTop();
var height_nav = document.getElementsByClassName('nav').scrollHeight;
var sidebar_top = document.getElementsByClassName('sidebar');
if (top >= height_nav+22) {
sidebar_top.style.top = 0;
} else {
sidebar_top.style.top = height_nav-top+22;
}
Ответы (1 шт):
Автор решения: Enokin
→ Ссылка
window.addEventListener('scroll', function(e) {
let top = window.pageYOffset;
let height_nav = document.getElementsByClassName('nav')[0].scrollHeight;
let sidebar_top = document.getElementsByClassName('sidebar')[0];
if (top >= (height_nav + 22)) {
sidebar_top.style.top = 0 + 'px' ;
} else {
sidebar_top.style.top = (height_nav - (top + 22)) + 'px' ;
}
});
Попробуй так