Skeleton Screen/加载占位图流光闪动效果收集
Skeleton Screen Loading,又叫 Skeleton Screen/加载占位图,就是显示dom骨架,加上流光加载效果。
骨架流光的原理,就是 渐变色(linear-gradient多个颜色) + 背景拉伸(background-size: 400% 100%) + 背景移动(background-position)
li{ background-image: linear-gradient(90deg, #ff0000 25%, #41de6a 37%, #ff0000 63%); width: 100%; height: 0.6rem; list-style: none; background-size: 400% 100%; background-position: 100% 50%; animation: skeleton-loading 1.4s ease infinite; } @keyframes skeleton-loading { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
2. 骨架屏动画实现
.animated-bg { animation: shimmer 1s forwards linear infinite; background: #f6f7f8; background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%); background-size: 800px 104px; height: 96px; } @keyframes shimmer{ 0%{ background-position: -468px 0 } 100%{ background-position: 468px 0 } }
3. CSS骨架屏载入动画
.video { width: 320px; height: 250px; } .video:empty { cursor: progress; background: linear-gradient(0.25turn, transparent, #fff, transparent), linear-gradient(#eee, #eee), radial-gradient(40px circle at 20px 20px, #EEE 50%, transparent 51%), linear-gradient(#eee, #eee); background-repeat: no-repeat; background-size: 320px 250px,320px 200px, 40px 40px, 270px 40px; background-position: -320px 0, 0 0, 0 210px, 50px 210px; animation: loading 1.5s infinite; } @keyframes loading { to { background-position: 320px 0, 0 0, 0 210px, 50px 210px; } }
:root { --ske-back-color: #edeeef; --ske-logo: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAACQCAMAAAA/Wnm0AAAAclBMVEUAAADOzs7Ly8vLy8vNzc3Nzc3Nzc3Nzc3Ozs7Ozs7Nzc3Ozs7Ozs7Nzc3Nzc3Nzc3Nzc3Ozs7Nzc3Ozs7Ly8vNzc3Nzc3MzMzNzc3Ozs7Pz8/T09PNzc3GxsbNzc3Ozs7Nzc3Ozs7Dw8PNzc3Nzc3Nzc0RvztGAAAAJXRSTlMAv0CA5vuyqWge4NCtjFb1zXhbOCvHtlBHQxcPDQnu1Z+WEXBgGoQieAAAAbRJREFUeNrt2FlugzAUheEDDoEMJEDIPLf1/rfYvgXXVBRfJ7jV+Rdw9Fnyg2Ww/1P8yvCbIv26KKKIotYo+huiyHdikYLnKKKIIooooogiiiiiiCKKKLJFdXCiyfCikyk6Dy/aG6AlhheVhmgagGhuiIrhRSttlA4vSk3RYnDRQpsdhxZl2izFsKKV0t/KnESxj7Yf7+qqrSZAWD+jCoGJNghMtERoojow0fiMoERJBYQkWs5rBCQq8u0RPYue0viWl9lifwRjjDHGGGPPKHIvhpUSzHl46reJtHsUUUQRRSGLVNxZH1HcXacIXfUSoTOKKKKIIooooogiiiiiiCKKKKKIIooooogiihxElV9RJReVulEtFpVy0V03OohFd7lorB8lkIjsOReReRNHIpE95yQa60YzkciecxHFulkqEtlz/UUHNTImFiKRPddTNFl9DZi9CUTtc7Yo+qH1NNFWc7SK5HORdixrFwnmhKLZSSSy58SiHbyKdpCKFLyKFKSiDbyKNhCKkj28irYQivIzfIrSCUSiIt8B/kSjWwU4iZLLaDpbzzPjPALR8jK9FlEe49EnhCEDxcCbebMAAAAASUVORK5CYII="); } ._ske_loading ._ske_color, ._ske_loading ._ske_tag { background: linear-gradient( 100deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 60% ) var(--ske-back-color); background-size: 200% 100%; background-position: 100% 50%; background-position-x: 180%; animation: 1s _ske_loading ease-in-out infinite; } ._ske_color { background-color: var(--ske-back-color); } ._ske_logo { position: relative; } ._ske_logo::after { content: ""; width: 30px; height: 30px; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; background: var(--ske-logo) center/100% no-repeat; } @keyframes _ske_loading { to { background-position-x: -20%; } }
5. 实现H5中Skeleton Screen骨架屏预加载动态效果
要实现圆形,椭圆形等不规则形状骨架,可以使用 mask-image, clip-path, border-radius等技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-11-24 babel的可选链,空值合并等常用插件
2021-11-24 vscode开发springboot入门
2018-11-24 Unhandled rejection RangeError: Maximum call stack size exceededill install loadIdealTree
2018-11-24 npm publish gives “unscoped packages cannot be private”
2015-11-24 table设置滚动条