gsap实现8种可调参数的炫酷图片幻灯片转场特效代码
代码语言:html
所属分类:幻灯片
代码描述:gsap实现8种可调参数的炫酷图片幻灯片转场特效代码,结合了ScrollTrigger+ScrambleTextPlugin3
代码标签: gsap 8种 可调 参数 炫酷 图片 幻灯片 转场 特效 代码
下面为部分代码预览,完整代码请点击下载或在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">
<style>
:root {
--font-mono: "PP Supply Mono", monospace;
--font-sans: "PP Neue Montreal", sans-serif;
--color-text: #fff;
--content-z: 2;
--desktop-width: 500px;
--mobile-width: 300px;
}
@font-face {
font-family: "PP Neue Montreal";
src: url("//repo.bfw.wiki/bfwrepo/font/PPNeueMontreal-Variable.woff2")
format("woff2");
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "PP Supply Mono";
src: url("//repo.bfw.wiki/bfwrepo/font/PPSupplyMono-Variable.woff2")
format("woff2");
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: var(--font-sans);
background: black;
}
img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
will-change: transform;
}
.tp-dfwv {
visibility: hidden;
}
.image-slider {
position: relative;
width: 100vw;
height: 100vh;
overflow: hidden;
opacity: 0;
}
.webgl-canvas {
display: block;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
/* Corner Text Styles */
.corner-text {
position: fixed;
color: white;
font-family: var(--font-mono);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.1em;
line-height: 1.5;
z-index: 1;
pointer-events: none;
}
.corner-text div {
margin-bottom: 4px;
}
.corner-text-top-left {
top: 2rem;
left: 2rem;
}
.corner-text-top-right {
top: 2rem;
right: 2rem;
text-align: right;
}
.corner-text-bottom-left {
bottom: 2rem;
left: 2rem;
}
.corner-text-bottom-right {
bottom: 2rem;
right: 2rem;
text-align: right;
}
.corner-text-shortcuts {
top: 50%;
left: 2rem;
transform: translateY(-50%);
font-size: 10px;
text-align: left;
}
.corner-text-center {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
height: 80vh;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.featured-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 25%;
height: 50%;
z-index: var(--content-z);
}
.featured-image-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
will-change: clip-path;
}
.slide-text {
position: absolute;
top: 10%;
left: 30%;
transform: translate(-50%, -50%);
color: var(--color-text);
z-index: var(--content-z);
}
.slide-number {
position: relative;
width: var(--desktop-width);
height: 20px;
margin-bottom: 0.5em;
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
overflow: hidden;
}
.slide-number span {
position: absolute;
top: 0;
left: 0;
color: var(--color-text);
font-family: var(--font-mono);
font-size: 12px;
font-weight: 400;
line-height: 1.5;
transform: translateY(0px);
will-change: transform;
margin: 0;
padding: 0;
text-transform: uppercase;
letter-spacing: 0.1em;
}
.slide-title {
position: relative;
width: var(--desktop-width);
height: 60px;
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
overflow: hidden;
}
.slide-title h1 {
position: absolute;
top: 0;
left: 0;
color: var(--color-text);
font-family: var(--font-sans);
font-size: 48px;
font-weight: 500;
letter-spacing: -0.02em;
line-height: 1.2;
transform: translateY(0px);
will-change: transform;
margin: 0;
padding: 0;
}
.slide-description {
position: relative;
width: var(--desktop-width);
height: 24px;
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
overflow: hidden;
}
.slide-description p {
position: absolute;
top: 0;
left: 0;
color: var(--color-text);
font-family: var(--font-mono);
font-size: 11px;
font-weight: 400;
line-height: 1.2;
transform: translateY(0px);
will-change: transform;
margin: 0;
padding: 0;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.slide-paragraph {
position: absolute;
bottom: 10%;
right: 30%;
transform: translate(50%, -50%);
color: var(--color-text);
z-index: var(--content-z);
width: 460px;
overflow: hidden;
}
.slide-paragraph-line {
position: relative;
width: 100%;
height: 28px;
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
overflow: hidden;
}
.slide-paragraph-line:last-child {
margin-bottom: 0;
}
.slide-paragraph-line span {
position: absolute;
top: 2px;
left: 0;
color: var(--color-text);
font-family: var(--font-sans);
font-size: 1.25em;
font-weight: 500;
line-height: 1.4;
transform: translateY(0px);
will-change: transform;
margin: 0;
padding: 0;
white-space: nowrap;
}
@media (max-width: 900px) {
.featured-image {
width: 75%;
}
.slide-text {
top: 60%;
left: 60%;
}
.slide-number {
width: var(--mobile-width);
height: 18px;
}
.slide-number span {
font-size: 10px;
}
.slide-title {
width: var(--mobile-width);
height: 50px;
}
.slide-title h1 {
font-size: 36px;
}
.slide-description {
width: var(--mobile-width);
height: 20px;
}
.slide-description p {
font-size: 12px;
}
.slide-paragraph {
top: 75%;
right: 20%;
width: 280px;
overflow: hidden;
}
.slide-paragraph-line {
height: 24px;
margin-bottom: 4px;
}
.slide-paragraph-line span {
font-size: 10px;
line-height: 1.4;
top: 2px;
}
.corner-text {
font-size: 10px;
}
.corner-text-shortcuts {
font-size: 8px;
}
.corner-text-center {
height: 70vh;
}
}
</style>
</head>
<body translate="no">
<main class="image-slider" role="region" aria-label="Image carousel" data-image-slider-init>
<canvas class="webgl-canvas" data-webgl-canvas aria-hidden="true"></canvas>
<!-- Fixed corner and center text -->
<aside class="corner-text corner-text-top-left" aria-hidden="true">
<div>ANCIENT</div>
<div>ONES</div>
<div>COSMIC</div>
<div>HORROR</div>
</aside>
<aside class="corner-text corner-text-top-right" aria-hidden="true">
<div>MADNESS</div>
<div>RISES</div>
</aside>
<aside class="corner-text corner-text-bottom-left" aria-hidden="true">
<div>TENTACLES</div>
<div>EMERGE</div>
<div>FROM</div>
<div>DEPTHS</div>
</aside>
<aside class="corner-text corner-text-bottom-right" aria-hidden="true">
<div>ELDRITCH</div>
<div>AWAKENS</div>
</aside>
<nav class="corner-text corner-text-shortcuts" aria-label="Keyboard shortcuts">
<p>H - TOGGLE SETTINGS</p>
<p>1 - DATAMOSH</p>
<p>2 - PIXEL SORT</p>
<p>3 - DIGITAL STATIC</p>
<p>4 - STATIC SWEEP</p>
<p>5 - GLITCH WIPE</p>
<p>6 - ANALOG DECAY</p>
<p>P - CYCLE PRESETS</p>
<p>+/- INTENSITY</p>
<p>[ ] SPEED</p>
<p>R - RESET</p>
</nav>
<aside class="corner-text corner-text-center" aria-hidden="true">
<div>R'LYEH</div>
<div></div>
<div>FHTAGN</div>
<div></div>
<div></div>
<div></div>
<div>CTHULHU</div>
<div></div>
<div>THE</div>
<div>SLEEPER</div>
<div>STIRS</div>
</aside>
<section class="featured-image" data-featured-image>
<div class="featured-image-wrapper" data-featured-wrapper>
<img src="//repo.bfw.wiki/bfwrepo/image/5e584482a56eb.png" alt="Awakening Abyss - Eldritch horror scene with cosmic entity emerging from dark abyss" />
</div>
</section>
<header class="slide-text" data-slide-text>
<div class="slide-number" data-slide-number>
<span>∅1</span>
</div>
<div class="slide-title" data-slide-title>
<h1>Awakening Abyss</h1>
</div>
<div class="slide-description" data-slide-description>
<p>Eldritch Emergence</p>
</div>
</header>
<.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0