Carousel script debugging
This commit is contained in:
parent
a053e7d14d
commit
0504ba54e3
1 changed files with 16 additions and 0 deletions
|
@ -164,6 +164,7 @@ class PhotoParametersTable {
|
||||||
#getElementWithQuerySelector(query) {
|
#getElementWithQuerySelector(query) {
|
||||||
const element = this.tableElement.querySelector(query);
|
const element = this.tableElement.querySelector(query);
|
||||||
if (!element) {
|
if (!element) {
|
||||||
|
console.error(`Couldn't find ${query} element in`, this.tableElement);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return element;
|
return element;
|
||||||
|
@ -216,13 +217,19 @@ document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
let carouselItems = Array.from(carouselElement.querySelectorAll("ul > li")).map(item => {
|
let carouselItems = Array.from(carouselElement.querySelectorAll("ul > li")).map(item => {
|
||||||
let itemRect = item.getClientRects()[0];
|
let itemRect = item.getClientRects()[0];
|
||||||
let relativeX = itemRect.x - carouselRect.x;
|
let relativeX = itemRect.x - carouselRect.x;
|
||||||
|
console.debug("Item at relative x:", relativeX);
|
||||||
return new CarouselItem(item, relativeX);
|
return new CarouselItem(item, relativeX);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let previousTimeoutID = null;
|
||||||
let previousScrollLeft = null;
|
let previousScrollLeft = null;
|
||||||
let isScrollingLeft = true;
|
let isScrollingLeft = true;
|
||||||
|
|
||||||
carouselElement.querySelector("ul").addEventListener("scroll", event => {
|
carouselElement.querySelector("ul").addEventListener("scroll", event => {
|
||||||
|
if (previousTimeoutID) {
|
||||||
|
clearTimeout(previousTimeoutID);
|
||||||
|
}
|
||||||
|
|
||||||
const target = event.target;
|
const target = event.target;
|
||||||
const scrollLeft = target.scrollLeft;
|
const scrollLeft = target.scrollLeft;
|
||||||
|
|
||||||
|
@ -236,6 +243,8 @@ document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
}
|
}
|
||||||
previousScrollLeft = scrollLeft;
|
previousScrollLeft = scrollLeft;
|
||||||
|
|
||||||
|
console.debug("isScrollingLeft =", isScrollingLeft);
|
||||||
|
|
||||||
carouselItems.forEach(item => {
|
carouselItems.forEach(item => {
|
||||||
const itemRelativeXCoordinate = isScrollingLeft ? item.relativeX - scrollLeft : item.relativeMaxX - scrollLeft;
|
const itemRelativeXCoordinate = isScrollingLeft ? item.relativeX - scrollLeft : item.relativeMaxX - scrollLeft;
|
||||||
|
|
||||||
|
@ -245,6 +254,8 @@ document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
|
||||||
if ( (isScrollingLeft && (!itemWasLeftOfContainerCenter && itemIsLeftOfContainerCenter))
|
if ( (isScrollingLeft && (!itemWasLeftOfContainerCenter && itemIsLeftOfContainerCenter))
|
||||||
|| (!isScrollingLeft && (itemWasLeftOfContainerCenter && !itemIsLeftOfContainerCenter))) {
|
|| (!isScrollingLeft && (itemWasLeftOfContainerCenter && !itemIsLeftOfContainerCenter))) {
|
||||||
|
console.debug("Item crossed container center", item);
|
||||||
|
|
||||||
if (captionElement) {
|
if (captionElement) {
|
||||||
captionElement.innerHTML = item.title;
|
captionElement.innerHTML = item.title;
|
||||||
}
|
}
|
||||||
|
@ -259,6 +270,11 @@ document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
photoParams.setExposureTime(item.exposureTime);
|
photoParams.setExposureTime(item.exposureTime);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
previousTimeoutID = setTimeout(() => {
|
||||||
|
console.debug(carouselItems);
|
||||||
|
previousScrollLeft = null;
|
||||||
|
}, 500);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue