Я использую ванильный JavaScript для навигации по страницам комиксов.Однако мне нужно установить условие, которое проверяет, пересекаются ли точки в текущем многоугольнике с точками в следующем многоугольнике.Если true, я хочу, чтобы viewBox анимировал от текущих точек к следующим точкам, если false, то ничего не происходит (используйте переход затухания по умолчанию).
Вот часть моего кода
var DELAY = 400;
function nextArea() {
if (isFirstPage() || areaIndex >= areas.length - 1) {
changePage(true);
changeArea();
} else {
fade();
areaIndex++;
setTimeout(changeArea, DELAY);
}
}
function prevArea() {
if (isLastPage() || areaIndex <= 0) {
changePage(false);
changeArea();
} else {
fade();
areaIndex--;
setTimeout(changeArea, DELAY);
}
}
function changeArea() {
if (isFirstPage() || isLastPage()) {
return;
}
var activeArea = areas[areaIndex];
var points = activeArea.getAttribute('points').split(' ');
var xy1 = points[0].split(',');
var xy2 = points[1].split(',');
var xy3 = points[2].split(',');
var box = [xy1[0], xy1[1], xy2[0] - xy1[0], xy3[1] - xy2[1]];
activePage.classList.remove('fade');
activePage.setAttribute('viewBox', box.join(' '));
activeRect = rects[pageIndex - 1];
activeRect.setAttribute('x', xy1[0]);
activeRect.setAttribute('y', xy1[1]);
}
Мой репозиторий кода здесь: https://github.com/cnario/svg-carousel
Вот что у меня есть до сих пор: https://cnario.github.io/svg-carousel/
Вот как я ожидаю, что это будет действовать: https://read.marvel.com/#book/41323