gsap+svg实现火箭发射式tab选项卡导航条动画效果代码
代码语言:html
所属分类:菜单导航
代码描述:gsap+svg实现火箭发射式tab选项卡导航条动画效果代码
代码标签: gsap svg 火箭 发射式 tab 选项卡 导航条 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.5.0.css"> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/inter.3.19.3.css"> <style> nav { position: relative; z-index: 1; } nav ul { margin: 0; padding: 0; list-style: none; display: flex; gap: 40px; } nav ul li button { -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; cursor: pointer; background-color: transparent; padding: 0; margin: 0; font-family: "Inter"; font-weight: 600; font-size: 16px; list-style: 22px; color: #5C5B66; transition: color 0.25s; } nav ul li.active button { color: #fff; } nav ul li:not(.active):hover button { color: #807E8C; } nav .active-element { --active-element-scale-x: 1; --active-element-scale-y: 1; --active-element-show: 0; --active-element-opacity: 0; --active-element-width: 0px; --active-element-strike-x: 0%; --active-element-mask-position: 0%; position: absolute; left: 0; top: 34px; height: 3px; width: 36px; border-radius: 2px; background-color: #fff; opacity: var(--active-element-show); } nav .active-element > svg, nav .active-element .strike { position: absolute; right: 0; top: 50%; transform: translateY(-50%); opacity: var(--active-element-opacity); width: var(--active-element-width); mix-blend-mode: multiply; } nav .active-element > svg { display: block; overflow: visible; height: 5px; filter: blur(0.5px) drop-shadow(2px 0px 8px rgba(0, 117, 255, 0.4)) drop-shadow(1px 0px 2px rgba(0, 128, 255, 0.8)) drop-shadow(0px 0px 3px rgba(153, 204, 255, 0.4)) drop-shadow(2px 0px 8px rgba(137, 196, 255, 0.45)) drop-shadow(8px 0px 16px rgba(153, 204, 255, 0.5)); } nav .active-element .strike { padding: 24px 0; -webkit-mask-image: linear-gradient(to right, transparent calc(0% + var(--active-element-mask-position)), black calc(15% + var(--active-element-mask-position)), black 80%, transparent); mask-image: linear-gradient(to right, transparent calc(0% + var(--active-element-mask-position)), black calc(15% + var(--active-element-mask-position)), black 80%, transparent); } nav .active-element .strike svg { display: block; overflow: visible; height: 12px; width: calc(var(--active-element-width) * 2); transform: translate(var(--active-element-strike-x), 30%) scale(var(--active-element-scale-x), var(--active-element-scale-y)); } nav .active-element .strike svg:last-child { transform: translate(var(--active-element-strike-x), -30%) scale(-1); } nav .active-element .strike svg g path:nth-child(2) { filter: blur(2px); } nav .active-element .strike svg g path:nth-child(3) { filter: blur(4px); } nav.before .active-element { transform: rotateY(180deg); } html { box-sizing: border-box; -webkit-font-smoothing: antialiased; } * { box-sizing: inherit; } *:before, *:after { box-sizing: inherit; } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background-color: #020112; position: relative; overflow: hidden; } body:before { content: ""; position: absolute; inset: 40% -60% 0 -60%; background-image: radial-gradient(ellipse at bottom, #152B9D 0%, #020112 50%); opacity: 0.3; pointer-events: none; } body .twitter { position: fixed; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0