Вы должны знать о HTMLElements. Вы можете изучить их в консоли веб-инспектора, набрав document.body
, а затем углубившись в объект. У них много функциональных возможностей, вам не нужно знать все это, но если вы собираетесь использовать vanilla js , хорошо для вас!
Важные вещи, которые вам нужно знать, это childNodes
, eventListeners и offsetLeft
.
Что-то в этом духе (непроверенное) должно помочь вам в этом.
const byId = (id) => document.getElementById(id);
const buttonContainer = byId("ButtonContainer");
const imageContainer = byId("ImageContainer");
let lastSelectedButton;
Array.from(buttonContainer.childNodes).forEach((child, childIndex) => {
child.addEventListener("click", () => {
if (lastSelectedButton) {
lastSelectedButton.classList.remove("selected");
}
const scrollToMe = imageContainer.childNodes[childIndex];
imageContainer.scrollX = scrollToMe.offsetLeft;
child.classList.add("selected");
lastSelectedButton = child;
});
});
И если вы действительно хотите оживить его, добавьте Scroll Snapping .
А если вы вообще не пытаетесь сделать версию с прокруткой и просто отключитесь, используйте child.remove()
и element.appendChild(child)
.