У меня есть скрипт, который добавляет или удаляет класс для нескольких div в зависимости от позиции прокрутки.Это работает отлично, как есть.
window.addEventListener('scroll', function() {
var sp = window.pageYOffset || document.documentElement.scrollTop;
var logo = document.querySelector(".logo");
var btn = document.querySelector(".toggle-label");
if (sp > 100) {
logo.classList.add("fade-out");
btn.classList.add("fade-out");
} else {
logo.classList.remove("fade-out");
btn.classList.remove("fade-out");
}
});
Но я недавно натолкнулся на другой скрипт, который достигает того же самого более красноречивым / современным способом.(использование функций let, const & arrow.)
И я просто пытаюсь узнать, как я могу добавить / удалить класс для нескольких div в этом современном сценарии.
let scrollpos = window.scrollY
const logo = document.querySelector(".logo")
const logo_height = 400
const add_class_on_scroll = () => logo.classList.add("fade-out")
const remove_class_on_scroll = () => logo.classList.remove("fade-out")
window.addEventListener('scroll', function() {
scrollpos = window.scrollY;
if (scrollpos >= logo_height) {
add_class_on_scroll()
} else {
remove_class_on_scroll()
}
})
IЯ начал с попытки использовать массив следующим образом.
var fade = [logo, toggle-label];
fade.forEach(function(el) {
el.classList.add("fade-out")
})
Но я застрял на том, как включить этот массив в оператор if / else.Я просто не могу обернуться вокруг него.
Кстати, я не застрял в использовании массива.Я просто пытаюсь понять, как это можно сделать любым разумным способом.
Любая помощь будет принята с благодарностью.