У меня есть div container
со списком (картами) внутри. Когда я нахожу его, карты начинают двигаться (translateX animation
). container
width
300px
, элементы подсчитываются в container:3
, каждый элемент width:100px
.
Итак, вы можете видеть 3 элемента в контейнере вместе overflow:hidden
. Что я хочу сделать?, то есть, когда нет элемента для отображения translateX animation -100px = 100px пустого пространства после третьего элемента, он начинается с 1 элемента в списке сразу после последнего, без пробелов пространство.
Пока я не знаю, как это можно сделать без дубликатов и т.д.
Вот что я имею в данный момент: Fiddle (Наведите на карту, чтобы увидеть анимацию перевода)
UPD 1: Например, код и данные (количество карт, размер контейнера) были взяты, я попытаюсь объяснить, что я хочу: моя цель - создать список карточек и после нажатия кнопки список начнет двигаться (как в примере с анимацией translateX) в течение некоторого времени (например, translateX: 12491px, продолжительность анимации: 15 с;) и останавливается. Но проблема в том, что количество крадов в списке будет в диапазоне 3-40 карт (каждая карта имеет ширину и высоту 100 пикселей). Поэтому, когда я установлю translateX: 12491px, например, он будет за пределами допустимого диапазона и после того, как последняя карта в списке будет выглядеть пустым. Я хочу, чтобы первая и последняя карта была привязана каким-то образом, и после того, как последняя карта сразу же отобразит первую карту в списке и т.д. Может быть, я искал решение неправильно, но, думаю, вы понимаете основную идею.
UPD 2: Я обнаружил, что cs: go использует анимацию, которую я хотел написать на html\css\js. Вот видео: youtube.com
HTML:
<div class="container">
<div class="cards">
<div class="card">
1
</div>
<div class="card">
2
</div>
<div class="card">
3
</div>
</div>
</div>
CSS
.container
{
width:300px;
height: 100px;
border: 2px solid black;
overflow: hidden;
}
.card
{
float:left;
height: 100px;
width: 100px;
background-color:blue;
box-sizing: border-box;
border: 2px solid red;
color: white;
font-size: 23px;
}
.cards:hover
{
transform: translateX(-100px);
transition-duration: 3s;
animation-duration: 3s;
animation-fill-mode: forwards;
}