canvas漩涡线条交互动画效果代码
代码语言:html
所属分类:动画
代码描述:canvas漩涡线条交互动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { margin: 0; padding: 0; box-sizing: border-box; } @font-face { font-family: 'Horror'; src: url('https://fonts.googleapis.com/css2?family=Creepster&display=swap'); } body { background: #000; color: #fff; font-family: 'Courier New', monospace; overflow: hidden; cursor: none; /* Hide default cursor */ } .container { position: relative; width: 100vw; height: 100vh; } canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; filter: contrast(1.2) brightness(0.9); } /* Enhanced cursor styling */ #cursor-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999; overflow: hidden; } #cursor-ring { position: absolute; width: 40px; height: 40px; border: 2px solid rgba(255, 255, 255, 0.8); border-radius: 50%; transform: translate(-50%, -50%); transition: width 0.2s ease, height 0.2s ease; mix-blend-mode: difference; } #cursor-dot { position: absolute; width: 5px; height: 5px; background: #fff; border-radius: 50%; transform: translate(-50%, -50%); mix-blend-mode: difference; } #cursor-trail { position: absolute; width: 100%; height: 100%; z-index: -1; } .cursor-trail-point { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, 0.5); transform: translate(-50%, -50%); pointer-events: none; mix-blend-mode: screen; } .overlay { position: absolute; z-index: 2; width: 100%; height: 100%; pointer-events: none; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem; } .title { display: flex; flex-direction: column; align-items: center; margin-top: 5vh; opacity: 0.8; text-align: center; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); letter-spacing: 0.5em; } h1 { font-family: 'Horror', serif; font-size: 4rem; font-weight: 700; margin-bottom: 0.5rem; letter-spacing: 0.8em; transform: scaleY(1.2); } .title p { font-size: 1rem; opacity: 0.7; font-style: italic; } .tag-line { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); font-size: 0.8rem; opacity: 0.6; } /* Special effects */ .glitch { animation: glitch 0.5s infinite; } @keyframes glitch { 0% { transform: translate(0); } 20% { transform: translate(-2px, 2px); } 40% { transform: translate(-2px, -2px); } 60% { transform: translate(2px, 2px); } 80% { transform: translate(2px, -2px); } 100% { transform: translate(0); } } .inverted { filter: invert(1); } @media (max-width: 768px) { h1 { font-size: 2.5rem; } } </style> </head> <body translate="no"> <div class="container"> <canvas id="spiral-canvas"></canvas> <canvas id="canvas"></canvas> <!-- Custom cursor elements --> <div id="cursor-container"> <div id="cursor-ring"></div> <div id="cursor-dot"></div> <div id="cursor-trail"></div> </div> <div class="overlay"> <div class="title"> <h1>UZUMAKI</h1> <p>Spirals of Obsession</p> </div> </div> <div class="controls"> <div class="control-toggle" id="toggle-button">≡</div> <div class="control-panel" id="control-panel"> <div class="control-group"> <label>Spiral Size</label> <input type="range" id="density" min="1" max="20" step="0.5" value="6"> </div> <div class="control-group"> <label>Warp Effect</label> <input type="range" id="distortion" min="0" max="5" step="0.1" value="0.8"> </div> <div class="control-group"> <label>Rotation</label> <input type="range" id="speed" min="0.1" max="3" step.........完整代码请登录后点击上方下载按钮下载查看
网友评论0