Борясь с этим ... У меня есть карусель, где, когда вы нажимаете на любой предмет, я бы хотел, чтобы этот активный элемент переместился, чтобы переместиться в центр карусели.
У меня есть мойрабочий код здесь пока: https://codepen.io/ReenaVerma1981/pen/KKKZoYV#=
(я разбил 3 скрипта в представлении JS, поэтому извиняюсь за длинный код JS).
Как видите, я могу прокрутитьхорошо влево и вправо.
И я использую getBoundingClientRect()
, чтобы вычислить ширину / высоту элемента.
Но я застрял на том, куда идти отсюда ... В конечном итоге, если я нажму на любойКарусельный элемент, я бы хотел, чтобы все элементы были смещены, поэтому активный элемент находится в центре карусели.
const getMostCentered = () => {
const items = getCarouselContainer().getElementsByTagName('div');
// Find center of the carousel
const bounds = calculateItemBounds(getCarouselContainer());
const center = bounds.left + (bounds.width / 2);
for (var i = 0; i < items.length; i++) {
const current = calculateItemBounds(items[i]);
const next = calculateItemBounds(items[i+1]);
// Find the first item whose left edge is past the center
if ((next && next.left) > center) {
if ((next.left - center < center) - current.right) {
console.log(items[i+1]);
return items[i+1];
}
}
}
}
Я нашел этот JSfiddle, но изо всех сил пытался перевести его из jQuery в JavaScript: http://jsfiddle.net/rUZHg/3/
Любая помощь будет удивительной ...