📅  最后修改于: 2023-12-03 15:42:28.791000             🧑  作者: Mango
颤动动画容器是一种常见的UI效果,适用于增强用户交互体验。该容器通过震动动画的形式,使用户关注并吸引其注意力。
应用CSS动画技术,通过关键帧(@keyframes)定义动画的各个阶段,模拟容器的最终效果。
.shake {
animation-name: shake;
animation-duration: 1s;
animation-timing-function: cubic-bezier(0.36, 0.07, 0.19, 0.97);
animation-iteration-count: infinite;
}
@keyframes shake {
0% {
transform: translateX(0);
}
10% {
transform: translateX(-10px);
}
20% {
transform: translateX(10px);
}
30% {
transform: translateX(-10px);
}
40% {
transform: translateX(10px);
}
50% {
transform: translateX(-10px);
}
60% {
transform: translateX(10px);
}
70% {
transform: translateX(-10px);
}
80% {
transform: translateX(10px);
}
90% {
transform: translateX(-10px);
}
100% {
transform: translateX(0);
}
}
使用JavaScript创建一个setInterval()方法,定期更改元素的位置,产生震动效果。
function shake(container, interval = 10, distance = 10, times = 5) {
let timer = null;
let count = 0;
const originPos = container.style.position;
container.style.position = 'relative';
const shakeInterval = setInterval(() => {
container.style.left = `${distance * Math.pow(-1, count)}px`;
count++;
if (count >= times) {
clearInterval(shakeInterval);
container.style.position = originPos;
container.style.left = '';
}
}, interval);
}
颤动动画容器适用于以下场景: