(编辑:jimmy 日期: 2024/10/30 浏览:2)
运用了css变量的知识,直接上代码及其我加的注释
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>展示一个css动态条形加载条</title> <style> /* 使用CSS变量 */ .flex { display: flex; list-style: none; /* 设定li元素横向排列 */ } .loading { width: 200px; height: 200px; } .loading>li { /* 我们在每一个li元素的行内元素都定义了一个css变量 --line-index大小不同 */ /* 此时定一个动画延迟的变量--time 经过计算calc */ --time: calc((var(--line-index) - 1) * 200ms); border-radius: 3px; width: 6px; height: 30px; background-color: #f66; /* 动画都是一个动画,但是开始的时间不同,就显示出这样的效果了 */ animation: beat 1.5s ease-in-out var(--time) infinite; } .loading>li+li { margin-left: 5px; } @keyframes beat { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.5); } } </style> </head> <body> <ul class="loading flex"> <li style="--line-index: 1;"></li> <li style="--line-index: 2;"></li> <li style="--line-index: 3;"></li> <li style="--line-index: 4;"></li> <li style="--line-index: 5;"></li> <li style="--line-index: 6;"></li> </ul> </body> </html>
看效果