js实现可爱变色爱心抖动动画效果代码
代码语言:html
所属分类:动画
代码描述:js实现可爱变色爱心抖动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --heart-size: 250px; --eye-size: calc(var(--heart-size) * 0.2); --pupil-base-size: calc(var(--eye-size) * 0.4); --pupil-dilation-factor: 1; --current-pupil-size: calc(var(--pupil-base-size) * var(--pupil-dilation-factor)); --mouse-x: 0px; --mouse-y: 0px; --heart-center-x: 0px; --heart-center-y: 0px; --mouse-proximity-to-heart: 0; --heart-base-color: #ff4757; --heart-highlight: #ff6b81; --heart-shadow: #ff1f35; --eye-color: #fff; --pupil-color: #2c3e50; --glow-color: #ff69b4; --bg-color: #f8e9f2; } body { background: radial-gradient(circle, var(--bg-color), #e8d0e0); display: flex; align-items: center; justify-content: center; min-height: 100vh; margin: 0; overflow: hidden; font-family: 'Arial', sans-serif; transition: background 0.5s ease; } .scene { position: relative; width: 100vw; height: 100vh; perspective: 800px; } .heart-container { position: absolute; top: 50%; left: 50%; width: var(--heart-size); height: var(--heart-size); transform-style: preserve-3d; transform: translate(-50%, -50%) rotateY(0deg); --heartbeat-scale-factor: calc(1 + 0.08 * var(--mouse-proximity-to-heart)); animation: heartbeat 1.5s infinite cubic-bezier(0.215, 0.61, 0.355, 1); filter: drop-shadow(0 0 calc(20px * var(--mouse-proximity-to-heart)) var(--glow-color)); transition: filter 0.3s ease-out, transform 0.5s ease; will-change: transform; } @keyframes heartbeat { 0%, 100% { transform: translate(-50%, -50%) scale(var(--heartbeat-scale-factor)); } 10% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 0.98)); } 13% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 0.94)); } 16% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 0.92)); } 25% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 1.05)); } 30% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 1.08)); } 35% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 1.04)); } 45% { transform: translate(-50%, -50%) scale(calc(var(--heartbeat-scale-factor) * 0.98)); } 60% { transform: translate(-50%, -50%) scale(var(--heartbeat-scale-factor)); } } .heart { position: absolute; width: 100%; height: 100%; background: linear-gradient(135deg, var(--heart-highlight) 0%, var(--heart-base-color) 50%, var(--heart-shadow) 100%); transform: rotate(-45deg); box-shadow: -10px 10px 30px rgba(0, 0, 0, 0.2), inset -5px 5px 25px rgba(255, 255, 255, 0.4), inset 5px -5px 25px rgba(0, 0, 0, 0.2); border-radius: 5px; transition: background 0.3s ease; } .heart::before, .heart::after { content: ''; position: ab.........完整代码请登录后点击上方下载按钮下载查看
网友评论0