gsap+ScrollTrigger实现滚动底部自动加载更多效果代码
代码语言:html
所属分类:加载滚动
代码描述:gsap+ScrollTrigger实现滚动底部自动加载更多效果代码
代码标签: gsap ScrollTrigger 滚动 底部 自动 加载 更多
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
:root {
--color-background: #F5CAC3;
--color-background-fade: #F5CAC300;
--color-browser: #84A59D;
--color-browser-alt: #C4D4D0;
--color-page: #F7EDE2;
--color-element: #C6CDD2;
--color-footer: #C794BB;
--page-margin: 20px;
--page-padding: 10px;
--top-bar-height: 30px;
--scroll-bar-width: 0px;
--content-gap: 20px;
--list-padding: 2rem;
--browser-border-radius: 30px;
--browser-top-bar-width: min(50%, 200px);
--browser-top-bar-radius: 20px;
--points-display: none;
--footer-face-width: clamp(60px, 20vh, 194px);
--footer-face-position: flex-start;
--footer-hand-position: 60%;
--shadow-color: 9deg 32% 60%;
--shadow-elevation-high:
0.3px 0.5px 0.6px hsl(var(--shadow-color) / 0.36),
0.9px 1.9px 2.1px -0.5px hsl(var(--shadow-color) / 0.33),
1.8px 3.5px 4px -0.9px hsl(var(--shadow-color) / 0.31),
3.1px 6.1px 6.9px -1.4px hsl(var(--shadow-color) / 0.29),
5.2px 10.5px 11.8px -1.9px hsl(var(--shadow-color) / 0.27),
8.6px 17.2px 19.3px -2.4px hsl(var(--shadow-color) / 0.25),
13.5px 26.9px 30.2px -2.8px hsl(var(--shadow-color) / 0.23),
20.3px 40.5px 45.5px -3.3px hsl(var(--shadow-color) / 0.2);
}
@media (min-width: 550px) {
:root {
--list-padding: 5rem;
--browser-border-radius: 10px;
--browser-top-bar-width: 100%;
--browser-top-bar-radius: 0px;
--scroll-bar-width: 0px;
--footer-face-position: center;
--points-display: flex;
--footer-hand-position: 70%;
}
}
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background-color: var(--color-background);
}
.browser {
--right: calc(var(--scroll-bar-width) + var(--page-margin));
--left: var(--page-margin);
--width: min(90vmin, 1000px);
--margin-top: 5vmin;
width: calc(var(--width) - (var(--left) + var(--right)));
padding: calc(var(--top-bar-height) + var(--page-margin)) var(--right) 40vh var(--left);
position: relative;
display: block;
margin: var(--margin-top) auto 0 auto;
border: solid 5px transparent;
}
.browser::before, .browser::after,
.browser .browser-elements {
content: "";
display: flex;
position: fixed;
width: var(--width);
left: 50%;
height: calc(50vh - 5vmin);
transform: translatex(-50%);
top: var(--margin-top);
border-radius: var(--browser-border-radius);
pointer-events: none;
border: solid 5px transparent;
}
.browser::before {
background-color: var(--color-browser-alt);
z-index: 1;
}
.browser::after {
box-shadow: var(--shadow-elevation-high);
border-color: var(--color-browser);
z-index: 4;
}
.browser .browser-elements {
z-index: 3;
}
.browser .browser-elements::before {
content: "";
position: absolute;
inset: 0;
background-color: var(--color-background);
transform: translatey(-100%);
}
.browser .browser-elements::after {
content: "";
position: absolute;
inset: 0;
background-color: var(--color-background-fade);
transform: translatey(100%);
}
.top-bar {
width: var(--browser-top-bar-width);
height: var(--top-bar-height);
background-color: var(--color-browser);
position: absolute;
top: 0;
left: 50%;
transform: translatex(-50%);
border-bottom-right-radius: var(--browser-top-bar-radius);
border-bottom-left-radius: var(--browser-top-bar-radius);
display: flex;
align-items: center;
}
.top-bar .points {
display: var(--points-display);
gap: 5px;
margin: 0 5px 3px 5px;
align-items: center;
}
.top-bar .points .point {
display: block;
width: 10px;
height: 10px;
border-radius: 10px;
background-color: var(--color-browser-alt);
}
.content-spacing {
display: flex;
flex-direction: column;
gap: var(--content-gap);
}
.page {
z-index: 2;
border-radius: 8px;
position: relative;
overflow: hidden;
padding: var(--page-padding);
}
.page > * {
z-index: 2;
border-radius: 8px;
}
.page-background {
position: absolute;
inset: 0;
background-color: var(--color-page);
z-index: 1;
}
header {
background-color: var(--color-element);
min-height: 100px;
width: 100%;
}
.items {
list-style: none;
padding: 0 var(--list-padding);
margin: 0;
}
.items li {
background-color: var(--color-element);
padding: 3vh;
border-radius: 6px;
}
.items li.flipping {
display: none;
}
footer {
width: 100%;
height: var(--footer-face-width);
background-color: currentcolor;
color: white;
display: flex;
align-items: center;
justify-content: var(--footer-face-position);
color: var(--color-footer);
padding-bottom: 20px;
position: relative;
}
.face {
width: var(--footer-face-width);
height: var(--footer-face-width);
}
.loading {
width: 100%;
height: 40px;
padding: 20px 0;
display: flex;
align-items: center;
justify-content: center;
}
.loading .spinner {
display: block;
width: 40px;
height: 40px;
border: 6px solid var(--color-element);
border-left-color: transparent;
border-radius: 100vmax;
-webkit-animation: spin 0.7s linear infinite;
animation: spin 0.7s linear infinite;
}
.hand {
position: absolute;
left: var(--footer-hand-position);
top: 0%;
}
.hand .hand-type {
display: none;
}
.hand[data-type=cookie] .hand-cookie {
display: block;
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0