react实现7种监听滚动下拉加载更多数据入场动画效果代码

代码语言:html

所属分类:其他

代码描述:react实现7种监听滚动下拉加载更多数据入场动画效果代码,包含网格、列表、横向、zippe、rotater、slidey等方式。

代码标签: react 监听 滚动 下拉 加载 更多 数据 入场 动画

下面为部分代码预览,完整代码请点击下载或在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/open-props.css">

<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/colors-hsl.min.css">

    <style>
  
 
        
        *,
        *:after,
        *:before {
        	box-sizing: border-box;
        }
        
        body {
        	display: grid;
        	place-items: center;
        	min-height: 100vh;
        	background: var(--surface-2);
        	font-family: 'Google Sans', sans-serif, system-ui;
        }
        
        #app {
        	width: 100%;
        	display: flex;
          align-items: center;
          justify-content:center;
          flex-wrap: wrap;
          gap: var(--size-4);
        }
        
        ul {
        	border-radius: var(--md-sys-shape-medium);
        	width: 50vmin;
          min-width: 300px;
        	aspect-ratio: 4 / 6;
        	background: var(--gray-0);
        	display: grid;
        	padding: 0;
        	margin: 0;
        	padding: var(--size-4);
        	gap: var(--size-4);
        	grid-template-columns: repeat(4, 1fr);
        	overflow: auto;
        	list-style-type: none;
          transition: all 0.5s var(--ease-elastic-2);
        }
        
        ul:is(.zipper, .rotater, .grid, .list, .slidey) {
        	overflow-x: hidden;
        }
        
        .card.elevated {
        	padding: 0;
        	margin: 0;
        	background-color: var(--blue-2);
        	min-width: 0;
        	transition: all 0.5s var(--ease-elastic-2);
        }
        
        .card .actions {
        	display: grid;
        	flex-direction: column;
        	grid-template-columns: auto auto;
        	gap: var(--size-2) var(--size-4);
        }
        
        .controls.card.elevated {
        	background-color: var(--md-sys-color-surface);
        }
        
        .grid .card {
        	aspect-ratio: 1;
        	transform: scale(calc(0.25 + (var(--shown, 1) * 0.75)));
        }
        
        .zipper .card {
        	--distance: 250%;
        	aspect-ratio: 1;
        	transform: translateX(
        		calc(
        			(var(--distance) * -1) + (var(--shown, 1) * var(--distance))
        		)
        	) scale(var(--shown, 1)) ;
        }
        
        .zipper li:is(:nth-of-type(n):nth-child(4n),:nth-of-type(4n + 3):nth-child(n)) .card {
        	--distance: -250%;
        	transition: all 0.5s var(--ease-elastic-1);
        }
        
        .slidey .card {
        	--distance: 250%;
        	aspect-ratio: 1;
        	opacity: calc(0.5 + var(--shown, 1));
        	transform: translateX(
        		calc(
        			(var(--distance) * -1) + (var(--shown, 1) * var(--distance))
        		)
        	) scale(calc(0.5 + (var(--shown, 1) * 0.5))) ;
        }
        
        /*.slidey li:is(:nth-of-type(n):nth-child(4n),:nth-of-type(4n + 3):nth-child(n)) .card {
        	--distance: -250%;
        	transition: all 0.5s var(--ease-elastic-1);
        }*/
        
        .rotater .card {
        	aspect-ratio: 1;
        	transform: rotate(calc(
        		((var(--rotation, 0) * -1) + (var(--shown, 1) * var(--rotation, 0))) * 1deg
        	)) scale(var(--shown, 1));
        }
        
        .rotater li:nth-of-type(n) .card {
        	--rotation: -270;
        	/*background: red;*/
        }
        
        .rotater li:nth-of-type(2n) .card {
        	--rotation: -180;
        	/*background: green;*/
        }
        .rotater li:nth-of-type(4n + 3):nth-child(n) .card {
        	--rotation: 180;
        	/*background: orange;*/
        }
        .rotater li:nth-of-type(n):nth-child(4n) .card {
        	--rotation: 270;
        	/*background: purple;*/
        }
        
        li {
        	padding: 0;
        	max-width: 100%;
        }
        
        .list li {
        	min-height: 40px;
          height: 8vmin;
        	grid-column: 1 / -1;
        }
        
        .list .card {
        	height:.........完整代码请登录后点击上方下载按钮下载查看

网友评论0