gsap实现手风琴式图文幻灯片代码
代码语言:html
所属分类:幻灯片
代码描述:gsap实现手风琴式图文幻灯片代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Gloria+Hallelujah&display=swap" rel="stylesheet"> <style> @layer normalize, base, prototype, responsive, instruction; @layer instruction { .arrow { display: inline-block; position: absolute; left: 55%; font-size: 0.875rem; opacity: 0.7; font-family: 'Gloria Hallelujah', cursive; transition: opacity 0.26s ease-out; top: 30%; rotate: -10deg; translate: 20% -140%; width: 60px; z-index: 99999; @media(max-width: 500px) { top: 95%; rotate: 30deg; } span { display: inline-block; rotate: -24deg; width: 160%; translate: -20% 110%; } svg { scale: 1 -1; translate: 120% 30%; rotate: -10deg; left: 0%; width: 80%; } } } @layer responsive { @container (max-width: 500px) { .slideshow-stack__tablist { grid-template-columns: unset; grid-template-rows: var(--active-tab); button { width: 100%; height: var(--button-width); } } .slideshow-stack__panels { grid-template-columns: unset; grid-template-rows: var(--active-tab); container-type: size; } [role="tabpanel"] { width: 100%; min-height: var(--button-width); &:nth-of-type(1) { /* z-index: 3; */ .slideshow-stack__panel-content { height: calc(var(--active-panel-height) + (var(--radius) * 0)); } } .slideshow-stack__panel-content { width: 100%; top: unset; right: 0; padding-bottom: var(--panel-padding); height: calc(var(--active-panel-height) + (var(--radius) * 2)); } &:not(:nth-of-type(1)) .slideshow-stack__panel-content { border-top: 0; } &:not(:nth-of-type(1)) .slide__content { /* padding-bottom: calc(var(--button-width) + var(--panel-padding)); */ padding-left: var(--panel-padding); } } } } @layer motion { @media (prefers-reduced-motion: no-preference) { :root:has([data-dragging]) * { cursor: -webkit-grabbing !important; cursor: grabbing !important; } [data-dragging] :is(.slideshow-stack__tablist, .slideshow-stack__panels) { transition: none !important; } .slideshow-stack__panels, .slideshow-stack__tablist { --ease: linear( 0 0%, 0.0036 9.62%, 0.0185 16.66%, 0.0489 23.03%, 0.0962 28.86%, 0.1705 34.93%, 0.269 40.66%, 0.3867 45.89%, 0.5833 52.95%, 0.683 57.05%, 0.7829 62.14%, 0.8621 67.46%, 0.8991 70.68%, 0.9299 74.03%, 0.9545 77.52%, 0.9735 81.21%, 0.9865 85%, 0.9949 89.15%, 1 100% ); transition-property: grid-template-columns, grid-template-rows; transition-property: grid-template-columns, grid-template-rows, -ms-grid-columns, -ms-grid-rows; transition-duration: calc(var(--transition, 0.6) * 1s); transition-timing-function: var(--ease); } .slide-text { opacity: 0; translate: 0 0.5lh; transition-property: opacity, translate, scale; transition-duration: calc(var(--transition, 0.6) * 0.8s); transition-timing-function: var(--ease); } [role="tabpanel"]:not([inert]) .slide-text { opacity: 1; transition-delay: calc(var(--transition, 0.6) * 0.4s); translate: 0 0; } } } @layer prototype { .resizable { padding: 2rem; resize: both; overflow: hidden; width: 75vw; aspect-ratio: 16/9; min-width: 360px; max-width: 100vw; @media (max-width: 500px) { aspect-ratio: 9 / 16; padding: 1rem; } } slideshow-stack { position: relative; display: inline-block; width: 100%; height: 100%; } .slideshow-stack__container { --radius: calc(var(--rad) * 1rem); --button-width: calc(var(--size, 4) * 1rem); --panel-padding: 2rem; --border-width: 2px; --border-color: light-dark(color-mix(in hsl, canvasText, canvas 50%), color-mix(in hsl, canvasText, canvas 75%)); /* Calculated values for panel sizing */ --inactive-tabs-width: calc((var(--total-tabs) - 1) * var(--button-width)); --active-panel-width: calc(100cqi - var(--inactive-tabs-width)); --active-panel-height: calc(100cqh - var(--inactive-tabs-width)); width: 100%; height: 100%; position: relative; container-type: inline-size; border-radius: var(--radius); overflow: hidden; touch-action: none; } .slideshow-stack__tablist { display: grid; grid-template-columns: var(--active-tab); list-style: none; padding: 0; position: absolute; inset: 0; height: 100%; pointer-events: none; z-index: 10; button { width: var(--button-width); height: 100%; pointer-events: all; opacity: 0; cursor: -webkit-grab; cursor: grab; &[aria-selected="true"] { cursor: default; } } } .slideshow-stack__panels { display: grid; grid-template-columns: var(--active-tab); height: 100%; overflow: hidden; } .slide__content { position: absolute; inset: 0; padding: var(--panel-padding); display: flex; align-items.........完整代码请登录后点击上方下载按钮下载查看
网友评论0