Эффект, который я собираюсь сделать: -wiggle несколько раз и прекратить шевелить. Делайте это поведение периодически, пока мышь не наведет. -На ходу, покачивание движения полностью прекращается. -все переходы сглажены. Я пробовал с ключевыми кадрами -webkit-animation, но используя -webkit-animation-timing-функцию, чтобы облегчить переход, когда мышь зависала, не работала. Кроме того, я теряюсь на том, как добиться движения по периоду: покачивать, останавливать и покачивать. Я был бы признателен, если бы вы могли указать в правильном направлении.CSS wiggle/shake effect
ответ
Попробуйте один из следующих действий:
.class:hover {
animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
perspective: 1000px;
}
@keyframes shake {
10%, 90% {
transform: translate3d(-1px, 0, 0);
}
20%, 80% {
transform: translate3d(2px, 0, 0);
}
30%, 50%, 70% {
transform: translate3d(-4px, 0, 0);
}
40%, 60% {
transform: translate3d(4px, 0, 0);
}
}
https://css-tricks.com/snippets/css/shake-css-keyframe-animation/
или Добавьте это в скрипте: <link type="text/css" href="https://rawgit.com/elrumordelaluz/csshake/master/dist/csshake.min.css"></link>
и добавить класс к элементу вы хотите встряхнуть
Полная документация здесь: https://elrumordelaluz.github.io/csshake/
Вот простая анимация покачивания, которая останавливается, когда вы наводите на нее курсор.
Для того, чтобы добиться задержек между колебаниями, вы можете просто включить «пустой кусок» анимации ... то есть период, в течение которого ничего не меняется. В моем примере ничего не меняется между отметкой 0% и 80%, а «покачивание» происходит только в последних 20% (что заканчивается на половину секунды).
@keyframes wiggle {
0% { transform: rotate(0deg); }
80% { transform: rotate(0deg); }
85% { transform: rotate(5deg); }
95% { transform: rotate(-5deg); }
100% { transform: rotate(0deg); }
}
h1.wiggle {
display: inline-block;
animation: wiggle 2.5s infinite;
}
h1.wiggle:hover {
animation: none;
}
<h1 class="wiggle">
wiggle, wiggle
</h1>
К сожалению, это не учитывает «ослабление» обратно в ун-пошевелила состояния при наведении на него в середине анимации. Для этого может потребоваться немного JavaScript.
спасибо! он все еще решает одну часть моей проблемы, которая контролирует периодичность анимации. Я думал, что css будет достаточно для облегчения анимации. Как вы будете работать в javascript? –
@SangamChouchan я думал, CSS тоже будет достаточно. Я думал, что добавление «перехода: преобразование 0,5 сек» в класс «h1.wiggle» приведет к тому, что он будет освобожден от анимации, но он, похоже, не работает. Я сейчас экспериментирую с javascript-решением. –
- 1. CSS Animation - Swell Effect
- 2. Cover Effect CSS
- 3. jQuery + CSS hover effect
- 4. Image effect, CSS
- 5. CSS Typing Effect
- 6. Hover image effect CSS
- 7. CSS Flipping Page Effect
- 8. CSS Toggle Effect
- 9. Aero effect in css
- 10. Изображение Grayscale CSS Effect
- 11. Lightning Effect CSS
- 12. CSS disable hover effect
- 13. Hover Effect (CSS)
- 14. CSS Blur Weird Shadow Effect
- 15. Пользовательский css radobuttons hover effect
- 16. CSS Transform and Transition Effect
- 17. CSS text fade gradient effect
- 18. CSS/Javascript: After Hover effect
- 19. jquery/css folding animation effect
- 20. CSS/JQuery Effect - Что это?
- 21. CSS fade effect background color
- 22. CSS hover effect Bootstrap Thumbnail
- 23. Onhover change effect in css
- 24. Glass Effect - Artistic Effect
- 25. CSS Box 2.5D Pop Out Shadow effect
- 26. css card flip effect, не откидывается назад
- 27. CSS drop down menu hover effect
- 28. CSS Font Styles - Rubber Stamp effect
- 29. HTML/CSS - Кнопка остановки href effect
- 30. CSS Text Manipulation (Effect) внутри FlexBox
Отметьте «Animate.css», это CSS-фреймворк для анимаций, созданных Dan Eden. Крейг Деннис расширил эту фреймворку с помощью плагина jquery, чтобы вы могли легко связать крючки на звезду/стоп и задержки между анимациями. Использование двух в сочетании должно позволить вам достичь вибрации/остановки/покачивания еще одной функции, которую вы хотите. –
animate.css на самом деле очень хорош и предлагает большую гибкость. Я могу просто изучить их код, чтобы получить основные принципы. благодаря! –