📅  最后修改于: 2023-12-03 15:07:04.311000             🧑  作者: Mango
全屏颤动是一种通过代码实现的屏幕效果,它可以给用户带来震撼的视觉体验。在计算机图形学和游戏开发等领域中被广泛应用。
实现全屏颤动的方式主要有两种:
可以通过CSS的@keyframes和animation属性实现全屏颤动效果。具体实现步骤如下:
@keyframes shake {
0% { transform: translate(0, 0); }
10% { transform: translate(-10px, 10px); }
20% { transform: translate(10px, 0); }
30% { transform: translate(0, -10px); }
40% { transform: translate(-10px, 0); }
50% { transform: translate(10px, 10px); }
60% { transform: translate(-10px, -10px); }
70% { transform: translate(0, 10px); }
80% { transform: translate(10px, 0); }
90% { transform: translate(0, -10px); }
100% { transform: translate(-10px, 10px); }
}
body {
animation: shake 1s infinite linear;
}
另一种实现全屏颤动效果的方式是使用JavaScript将元素进行定位和偏移,代码实现步骤如下:
const shake = (element) => {
const x = 10;
const y = 10;
const duration = 1000; //1s
const start = new Date().getTime();
const animate = setInterval(() => {
const now = new Date().getTime();
const time = now - start;
const progress = time / duration;
const offsetX = x * Math.sin(progress * Math.PI * 2);
const offsetY = y * Math.sin(progress * Math.PI * 2);
element.style.transform = `translate(${offsetX}px, ${offsetY}px)`;
if (progress >= 1) {
clearInterval(animate);
element.style.transform = "translate(0px, 0px)";
}
}, 20);
};
shake(document.body);
全屏颤动是一种简单但又引人注目的屏幕效果,可以通过CSS和JavaScript实现。在实际开发中,可以根据具体需求选择不同的实现方式,动态应用在网站、Web应用和游戏中,达到更好的视觉效果和交互体验。