gsap实现文字瞄准向上滚动动画效果代码
代码语言:html
所属分类:加载滚动
代码描述:gsap实现文字瞄准向上滚动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url('https://unpkg.com/normalize.css') layer(normalize); @layer normalize, base, demo; @layer demo { .container { --font-level: 8; opacity: 0; height: 3lh; display: flex; place-items: center; -webkit-mask: linear-gradient( #0000 0.25lh, #fff calc(50% - 0.5lh) calc(50% + 0.5lh), #0000 calc(100% - 0.25lh) ); mask: linear-gradient( #0000 0.25lh, #fff calc(50% - 0.5lh) calc(50% + 0.5lh), #0000 calc(100% - 0.25lh) ); color: color-mix(in lch, canvasText, canvas 15%); text-align: center; position: relative; } ul { padding: 0; margin: 0; list-style-type: none; text-transform: uppercase; line-height: 1; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; height: 1lh; display: inline-grid; flex-direction: column; position: relative; padding-inline: 0.25em; align-items: center; align-content: center; justify-content: center; justify-items: center; text-align: center; } .indicator { --c: 0.175em; position: absolute; top: 50%; left: 50%; height: 1lh; translate: -50% -50%; border: 0.05em solid oklch(0.75 1 var(--h, 320)); transition: width 0.25s, border-color 0.25s; width: calc((var(--width) * 1px) + var(--c)); /* alternative: mask-composite */ -webkit-clip-path: polygon( /* top left corner */ 0 0, var(--c) 0, var(--c) var(--c), 0 var(--c), 0 100%, /* bottom left corner */ 0 calc(100% - var(--c)), var(--c) calc(100% - var(--c)), var(--c) 100%, 0 100%, /* bottom right corner */ calc(100% - var(--c)) 100%, calc(100% - var(--c)) calc(100% - var(--c)), 100% calc(100% - var(--c)), 100% 100%, /* top right corner */ 100% var(--c), calc(100% - var(--c)) var(--c), calc(100% - var(--c)) 0, 100% 0, /* back to the start */ 100% 100%, 0 100% ); clip-path: polygon( /* top left corner */ 0 0, var(--c) 0, var(--c) var(--c), 0 var(--c), 0 100%, /* bottom left corner */ 0 calc(100% - var(--c)), var(--c) calc(100% - var(--c)), var(--c) 100%, 0 100%, /* bottom right corner */ calc(100% - var(--c)) 100%, calc(100% - var(--c)) calc(100% - var(--c)), 100% calc(100% - var(--c)), 100% 100%, /* top right corner */ 100% var(--c), calc(100% - var(--c)) var(--c), calc(100% - var(--c)) 0, 100% 0, /* back to the start */ 100% 100%, 0 100% ); } li { display: inline-block; width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; height: 1lh; grid-area: 1 / 1; line-height: 1.2; } } @layer base { :root { --font-size-min: 16; --font-size-max: 20; --font-ratio-min: 1.2; --font-ratio-max: 1.33; --font-width-min: 375; --font-width-max: 1500; } html { color-scheme: light dark; } [data-theme='light'] { color-scheme: light only; } [data-theme='dark'] { color-scheme: dark only; } :where(.fluid) { --fluid-min: calc( var(--font-size-min) * pow(var(--font-ratio-min), var(--font-level, 0)) ); --fluid-max: calc( var(--font-size-max) * pow(var(--font-ratio-max), var(--font-level, 0)) ); --fluid-preferred: calc( (var(--fluid-max) - var(--fluid-min)) / (var(--font-width-max) - var(--font-width-min)) ); --fluid-type: clamp( (var(--fluid-min) / 16) * 1rem, ((var(--fluid-min) / 16) * 1rem) - (((var(--fluid-preferred) * var(--font-width-min)) / 16) * 1rem) + (var(--fluid-preferred) * var(--variable-unit, 100vi)), (var(--fluid-max) / 16) * 1rem ); font-size: var(--fluid-type); } *, *:after, *:before { box-sizing: border-box; } body { display: grid; place-items: center; min-height: 100vh; font-family: 'SF Pro Text', 'SF Pro Icons', 'AOS Icons', 'Helvetica Neue', Helvetica, Arial, san.........完整代码请登录后点击上方下载按钮下载查看
网友评论0