Nie wiem, dlaczego ludzie nie odpowiadają na to pytanie. Robię poziomy nieskończony suwak pętli. Używam kontenera, który ma 3 obrazy, na przykład jeśli są 3 obrazy, to sklonuj pierwszy obraz i umieść go na końcu suwaka, tak samo jak w przypadku ostatniego obrazu sklonuj i umieść go przed pierwszym obrazem. obraz. Teraz całkowita liczba zdjęć wynosi 5. Domyślne tłumaczenie suwaków zawsze rozpoczyna się od pierwszego obrazu, a nie od klonu pierwszego. Oto example. Zmierzam do tego, że chcę zresetować suwak po tym, jak suwak dojdzie do ostatniego obrazu klona z tą samą ciągłą pętlą jak suwak karuzeli. Próbuję użyć addEventListener z nazwą przejścia zdarzenia, ale to zdarzenie nie działa poprawnie i wykazuje niezadowalające zachowanie. Czy istnieje sposób, aby to naprawić?Suwak JavaScript nie działa poprawnie z końcem przejścia
(function() {
var resetTranslation = "translate3d(-300px,0px,0px)";
var elm = document.querySelector('.Working');
elm.style.transform = resetTranslation;
var arr = document.querySelectorAll('.Working li');
var clonefirst,
clonelast,
width = 300;
index = 2;
clonefirst = arr[0].cloneNode(true);
clonelast = arr[arr.length - 1].cloneNode(true);
elm.insertBefore(clonelast, arr[0]);
arr[arr.length - 1].parentNode.insertBefore(clonefirst, arr[arr.length - 1].nextSibling);
//Update
arr = document.querySelectorAll('.Working li');
elm.style.transition = 'transform 1.5s ease';
setInterval(function() {
elm.style.transform = 'translate3d(-' + index * width + 'px,0px,0px)';
if (index == arr.length - 1) {
elm.addEventListener('transitionend', function() {
elm.style.transform = resetTranslation;
});
index = 1;
}
index++;
}, 4000)
})();
*{
box-sizing: border-box;
}
.wrapper{
position: relative;
overflow: hidden;
height: 320px;
width: 300px;
}
.Working{
list-style: none;
margin: 0;
padding: 0;
position: relative;
width: 3125%;
}
.Working li{
position: relative;
float: left;
}
img{
max-width: 100%;
display: block;
}
.SubContainer:after{
display: table;
clear: both;
content: "";
}
<div class="wrapper">
<ul class="SubContainer Working">
<li> <img class="" src="http://i.imgur.com/HqQb9V9.jpg" /></li>
<li><img class="" src="http://i.imgur.com/PMBBc07.jpg" /></li>
<li><img class="" src="http://i.imgur.com/GRrGSxe.jpg" /></li>
</ul>
</div>
Nie sidetrack swoje pytanie, ale może warto spróbować czegoś bardziej przyjazne urządzenie. Sprawdź mój codepen dla suwaka w js. http://codepen.io/norcaljohnny/pen/NbpPvL –
Jest to oczywiste, gdy tłumaczysz wszystkie obrazy, nie ma procesu, aby zmienić je z powrotem na ich pierwotną pozycję. Twoje tłumaczenie powraca, ale obrazy idą w kierunku '- infinite' –
Niedawno zakodowałem nieskończoną karuzelę, która również przechodzi przez kontener.Gdy kontener osiągnie ostatni element - resetuję przejście. Wykorzystuje również właściwość 'order' flexbox do zmiany kolejności elementów (nie jest konieczne klonowanie). Oto [Codepen] (http://codepen.io/danield770/pen/mOojWV) (Uncomment 'overflow: hidden' na wpr, aby zobaczyć wynik) Jeśli tego właśnie szukasz, mógłbym opublikować to jako odpowiedź :) – Danield