#html #css
#HTML #css
Вопрос:
В последнее время я работаю над своим портфолио, но проблема в том, что анимация изображения, которую я написал, в конце концов дрожит.
Вот код:
@keyframes mymove {
0% {top: 0px;}
50% {top: 25px;}
100% {top: 0px;}
}
img {
animation: mymove 5s infinite;
}
<img src="http://pngimg.com/upload/small/basketball_PNG1096.png">
Ответ №1:
Это происходит, когда движение очень мало, а длительность анимации большая (в вашем случае 25px
5 секунд), что означает меньшее количество значений для интерполяции в течение длительного времени.
Если вы увеличите top
значение или уменьшите duration
(лучше, если вы сделаете и то, и другое), у вас не будет этой неровной анимации
Комментарии:
1. Большое вам спасибо!
Ответ №2:
Добавить position:absolute
в img. Это может предотвратить повторный поток страницы. Также свойство transform может помочь передать работу на GPU, следовательно, более плавную анимацию.
@keyframes mymove {
0% {top: 0px;}
50% {top: 25px;}
100% {top: 0px;}
}
img {
animation: mymove 2s infinite;
position:absolute;
transform: translateZ(0);
}
<img src="http://pngimg.com/upload/small/basketball_PNG1096.png">
Комментарии:
1. Опять же, анимация все еще прерывистая в конце
2. Извините, я имел в виду абсолютную позицию.
3. Длительность составляет 5 секунд, а не 2 секунды
Ответ №3:
вы пробовали «легкий ввод-вывод»
@keyframes mymove {
0% {
top: 0px;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
}
50% {
top: 25px;
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
100% {
top: 0px;
}
}
img{
animation: mymove 2s infinite ease-in-out;
}
Ответ №4:
.img {
width: 200px;
height: 200px;
border: 10px solid #fff;
-webkit-border-radius: 15px;
border-radius: 15px;
overflow: hidden;
}
.img:hover {
cursor: pointer;
}
.morph {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-ms-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
.morph:hover {
border: 10px solid #fff;
border-radius: 50%;
-webkit-box-shadow: 0 0 40px rgba(255,255,255,.6), inset 0 0 40px rgba(255,255,255,1);
-moz-box-shadow: 0 0 40px rgba(255,255,255,.6), inset 0 0 40px rgba(255,255,255,1);
box-shadow: 0 0 40px rgba(255,255,255,.6), inset 0 0 40px rgba(255,255,255,1);
}
<div class="morph img"><img alt="" src="img/image1.jpg" /></div>
Пожалуйста, проверьте эту ссылку:-http://1stwebdesigner.com/css3-animation-styles/#css3-animation