.shake { animation-name: shake; animation-duration: 0.5s; animation-delay: 0s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; } @keyframes shake { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }
首先,大家要了解为什么CSS3动画会出现颤抖的问题。其实主要是由于浏览器的性能问题引起的,当使用CSS3动画时会增加浏览器的任务负担,如果你同时在页面上有多个CSS3动画时就会更容易引起颤抖等问题。
然后,大家可以通过优化CSS3动画来避免这个问题。首先建议尽量使用单一的动画而不是多个不同的动画来实现目标特效。其次可以适当减少动画的循环次数,比如将infinite改为具体的循环次数,过多的循环次数也会带来动画卡顿的问题。此外还可以减少动画的耗时,比如将animation-duration的值调整为较短的时间。
最后,还有一种方法是使用JavaScript进行优化,当浏览器的任务负担过大时大家可以通过JavaScript去控制动画的开始和结束,这样能够有效的减轻浏览器的压力。
总之,在使用CSS3动画时颤抖是无法避免的,但是大家可以通过一些优化的方法来避免它的发生,让大家的特效更加流畅。