gsap+svg实现炫酷按钮悬浮边缘走光动画效果代码
代码语言:html
所属分类:悬停
代码描述:gsap+svg实现炫酷按钮悬浮边缘走光动画效果代码
代码标签: gsap svg 炫酷 按钮 悬浮 边缘 走光 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap'> <style> .generate-button { --generate-button-star-1-opacity: .25; --generate-button-star-1-scale: 1; --generate-button-star-2-opacity: 1; --generate-button-star-2-scale: 1; --generate-button-star-3-opacity: .5; --generate-button-star-3-scale: 1; --generate-button-dots-opacity: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; outline: none; border: none; padding: 16px 24px 16px 20px; border-radius: 29px; margin: 0; background-color: #1D1D1D; color: #616161; min-width: 192px; display: flex; position: relative; cursor: pointer; -webkit-tap-highlight-color: transparent; z-index: 1; transform: scale(var(--generate-button-scale, 1)) translateZ(0); box-shadow: 0px 0px 120px var(--generate-button-shadow-wide, transparent), 0px 4px 12px rgba(0, 0, 0, 0.05), 0px 1px 2px rgba(0, 0, 0, 0.1), inset 0px 1px 1px var(--generate-button-shadow-inset, rgba(255, 255, 255, 0.04)), 0 0 0 var(--generate-button-shadow-outline, 0px) rgba(109, 68, 244, 0.4); transition: transform 0.3s, background-color 0.3s, box-shadow 0.3s, color 0.3s; } .generate-button:before { content: ""; display: block; position: absolute; right: 20%; height: 20px; left: 20%; bottom: -10px; background: #D3B3FF; filter: blur(12.5px); z-index: 2; -webkit-clip-path: inset(-200% -30% 10px -30% round 29px); clip-path: inset(-200% -30% 10px -30% round 29px); opacity: 0; transition: opacity 0.4s; transform: translateZ(0); } .generate-button span { position: relative; z-index: 1; font-family: "Poppins", Arial; font-weight: 600; font-size: 16px; line-height: 26px; letter-spacing: 0.005em; display: block; } .generate-button span:before { content: ""; background-image: linear-gradient(to right, transparent, #1D1D1D); position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.4; transition: opacity 0.4s; } .generate-button .stroke { mix-blend-mode: hard-light; } .generate-button .stroke svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke-width: 0.75px; stroke: #E2D9FF; stroke-dasharray: 1.5 14; stroke-dashoffset: 22; opacity: 0; } .generate-button .stroke svg:nth-child(2) { stroke-width: 1px; stroke-opacity: 0.5; filter: blur(3px); } .generate-button svg { display: block; overflow: visible; pointer-events: none; } .generate-button svg.dots { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 10; fill: #D3B2FF; opacity: var(--generate-button-dots-opacity); } .generate-button svg.icon { width: 24px; height: 26px; margin-right: 12px; fill: currentColor; } .generate-button svg.icon path:nth-child(1) { opacity: var(--generate-button-star-1-opacity); transform: scale(var(--generate-button-star-1-scale)) translateZ(0); transform-origin: 25% 14.58%; } .generate-button svg.icon path:nth-child(2) { opacity: var(--generate-button-star-2-opacity); transform: scale(var(--generate-button-star-2-scale)) translateZ(0); transform-origin: 60.42% 50%; } .generate-button svg.icon path:nth-child(3) { opacity: var(--generate-button-star-3-opacity); transform: scale(var(--generate-button-star-3-scale)) translateZ(0); transform-origin: 25% 85.42%; } .generate-button:hover { --generate-button-scale: 1.1; --generate-button-shadow-wide: rgba(208, 173, 255, 0.4); --generate-button-shadow-inset: rgba(255, 255, 255, 0.35); --generate-button-shadow-outline: 3px; color: #fff; background-color: #6D44F4; } .generate-button:hover .stroke svg { -webkit-animation: stroke 2s linear infinite; animation: stroke 2s linear infinite; } .generate-button:hover:before { opacity: 1; } .generate-button:hover span:before { opacity: 0; } .generate-button:hover:active { --generate-button-scale: 1.05; } @-webkit-keyframes stroke { 0% { opacity: 0; } 25%, 75% { opacity: 1; } 95%, 100% { stroke-dashoffset: 6; opacity: 0; } } @keyframes stroke { 0% { opacity: 0; } 25%, 75% { opacity: 1; } 95%, 100% { stroke-dashoffset: 6; opacity: 0; } } body { transition: background-color 0.3s; background-color: #111111; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0