在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在加载网络数据时,为了提升用户体验,通常会使用一个转圈圈的loading动画,或者使用Skeleton Screen占位。相比与loading动画,Skeleton Screen的效果要更生动,实现起来来也很简单。利用CSS就可以实现一个简单的Skeleton Screen。 思路
从搭建骨架开始 骨架结构很简单,只是随意的放几个你喜欢的块级元素就ok了。 <div class='screen-root'> <ul> <li/> <li/> <li/> </ul> </div> 你看,就是这样简简单单。 CSS上色 我们常看到的骨架屏是这个样子的 为了方便描述,增强对比,我会先做一个鬼畜版的
首先利用css的 标签 linear-gradient()可以创建一个多种颜色线性渐变的图片,想了解更多可以看这里 li{ background-image: linear-gradient(90deg, #ff0000 25%, #41de6a 37%, #ff0000 63%); width: 100%; height: 0.6rem; list-style: none; } 实际使用中将渐变图换成正常的颜色,如: 让它动起来 剩下要做的就是让中间的绿色动起来 你可以想一下有什么办法让它动? 这里用到的是,通过拉伸背景图片,动态设置背景定位百分比,改变背景定位,从而计算得到图片相对容器的不同偏移值,以此实现了动画的效果。 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%; } } 这里给 使用百分比设置 有同学可能会问,将 你可以试着给background-size设置不同的值,观察它的表现,并想一下为什么会这样。 最后利用关键帧动画,设置 @keyframes skeleton-loading { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } } 假设容器的宽度是 (100px-400px)*100% = -300px 最后一帧实际偏移 (100px-400px)*0% = 0 动画的过程实际就是一个3倍容器宽的线性背景图片相对于容器的偏移从 总结 到此这篇关于CSS实现Skeleton Screen(骨架屏)的文章就介绍到这了,更多相关CSS实现Skeleton Screen 骨架屏内容请搜索极客世界以前的文章或继续浏览下面的相关文章,希望大家以后多多支持极客世界! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论