#html #css #css-animations
#HTML #css #css-анимации
Вопрос:
При выполнении приведенного ниже кода вы можете увидеть, что по истечении нескольких секунд анимация прерывается, и она не работает гладко. Я хочу запускать ее непрерывно плавно с той же шириной, которую я определил. Пожалуйста, помогите, здесь также есть fiddle
.tech-slideshow {
height: 200px;
max-width: 800px;
margin: 0 auto;
position: relative;
overflow: hidden;
transform: translate3d(0, 0, 0);
}
.tech-slideshow > div {
height: 200px;
width: 126px;
background: url(https://i.stack.imgur.com/IcC0b.png) repeat-x;
position: absolute;
top: 0;
left: 0;
height: 100%;
transform: translate3d(0, 0, 0);
}
.tech-slideshow .mover-1 {
animation: moveSlideshow 8s linear infinite;
}
.tech-slideshow .mover-2 {
opacity: 0;
transition: opacity 0.5s ease-out;
background-position: 0 -200px;
animation: moveSlideshow 15s linear infinite;
}
.tech-slideshow:hover .mover-2 {
opacity: 1;
}
@keyframes moveSlideshow {
100% {
transform: translateX(-66.6666%);
}
}
<div class="tech-slideshow">
<div class="mover-1"></div>
<div class="mover-2"></div>
</div>
Комментарии:
1. почему -мы голосуем, пожалуйста, ответьте?
Ответ №1:
Вы можете анимировать положение фона, например, переместить его влево на ширину изображения, поэтому, когда анимация закончится и начнется снова, вы фактически не увидите разницы. В этом случае ширина вашего фонового изображения составляет 26 пикселей, следовательно, вам нужно провести пальцем по фону влево до ширины этого фона. В общем, вариантов много, все зависит от того, какую задачу вам нужно решить.
@keyframes moveSlideshow {
100% {
background-position-x: -26px;
}
}
Также выставьте желаемую скорость анимации.