您现在的位置是:网站首页> 编程资料编程资料

使用CSS3制作饼状旋转载入效果的实例

2021-09-05 1010人已围观

简介 这篇文章主要介绍了使用CSS3制作饼状旋转载入效果的实例,作者生动地将其比作摊鸡蛋煎饼般的动画效果,需要的朋友可以参考下

今天,要实现一个长任务等待提示效果。

然后设计师就把做好的gif效果图给我,就是下面这个:
2015623154443151.gif (86×86)

按照大众做法,我应该是把图片直接按图索骥,调调布局,然后早早回家抱老婆。

但是,我这个人,天生不安分守己。想到是用在客户端,客户端又是用的webkit内核,于是,立马决定使用CSS3来折腾一番。

外面的光环很好实现,360度转转转就OK. 但是,中间那个鸡蛋转转转的可不是好啃的骨头啊。人家师傅饼前一分钟,饼下十年功啊。

我生小辈想要习得这转饼的精髓,可得要好生琢磨一番啊!

如果您手头的是IE10+这类支持animation的现代浏览器,您可以狠狠地点击这里:CSS3饼状图loading旋转动画demo
2015623154506455.png (232×310)

截图是死的,demo是活的。建议点上面的地址去仔细对比CSS3实现和gif动画效果。

不难发现,这个gif尺寸又大,效果也不流畅,还烧性能。相比之下,立马被CSS3实现甩出了2条南京路。

CSS3效果更佳、性能更高、资源占用更少大家都认同了。关键是,这个大饼它是怎么转起来的?

略复杂。
蛋饼旋转技能传授

师父领进门修行在个人,听不懂我也没办法啦~~

我们肉眼看上去是一个鸡蛋被摊在了整个饼上,实际上,这只是个障眼法。

实际摊的鸡蛋,只有半个饼那么大。还有半个饼位置是长得像鸡蛋的假鸡蛋和长得像大饼的假大饼。显然这句话你听不懂,因为我自己都没听懂,哈哈~~所谓一图胜千言,示意图走起~

下图示意的就是鸡蛋饼上的鸡蛋从100%变小成0的过程。

1. 这是没有干扰的蛋饼,你看到的是半个假饼和半个假蛋。
2015623154531334.png (454×340)

2. 当我们煎饼动画转起的一瞬间,我们让假的饼子隐藏回家打酱油去。于是,从上面看,我们看到的就是满满一层的鸡蛋。
2015623154552781.png (454×340)

3. 真鸡蛋转起,你会发现,半个真鸡蛋,由于逆时针旋转,露出了点空(左侧上部)。
2015623154614997.png (454×340)

demo对应效果类似(浅色看成鸡蛋):
2015623154630843.png (454×340)

4. 当真鸡蛋旋转了180度(半圈)的时候,真假鸡蛋正好重合在了一起,于是就是看到的就是蛋饼上半面鸡蛋。
2015623154649674.png (70×67)

demo对应效果类似:
2015623154708939.png (454×340)

demo对应效果类似:
2015623154724898.png (69×65)

6. 一直旋转到360度,其完全被假的饼子遮盖,一点鸡蛋都看不到了。完成了从全部都0的动画过程。这就是蛋饼转转转的基本原理。
2015623154742376.png (454×340)

CSS3表示
可见,要实现我们想要的蛋饼效果,我们需要这些东西:

    圆形的蛋饼子 – 对应下面类名为inner元素
    旋转的半面真鸡蛋 – 对应下面类名为spiner的元素
    不动的半面蛋饼子,前半程隐藏,后半程出现 – 对应下面类名为masker的元素
    不动的半面假鸡蛋,前半程出现,后半程隐藏 – 对应下面类名为filler的元素

CSS Code复制内容到剪贴板
  1. "inner">   
  2.     "spiner">
  
  •     "filler">
  •   
  •     "masker">
  •   
  •   

        inner主要实现圆以及背景色;
        spiner主要实现半圆的360度逆时针旋转,其背景色有别于父元素的背景色;
        filler半圆,定位在右侧,与旋转元素同样背景色;后面的180度隐藏;
        masker半圆,定位在左侧,与大背景色色值相同;旋转前180度隐藏,之后显示遮盖;

    其中,360度旋转CSS代码如下:

    CSS Code复制内容到剪贴板
    1. @keyframes spin {   
    2.   0%   { transform: rotate(360deg); }   
    3.   100% { transform: rotate(0deg); }   
    4. }  

    因为是逆时针,所以是从360deg到0deg.

    前半程出现,后半程隐藏,可以借助animation step相关的timing function实现,代码如下:

    CSS Code复制内容到剪贴板
    1. @keyframes second-half-hide {   
    2.   0%        { opacity: 1; }   
    3.   50%, 100% { opacity: 0; }   
    4. }  

    后半程显示则是:

    CSS Code复制内容到剪贴板
    1. @keyframes second-half-show {   
    2.   0%        { opacity: 0; }   
    3.   50%, 100% { opacity: 1; }   
    4. }  

    于是,我们只要加个动画时间,以及无限执行就OK啦~~

    CSS Code复制内容到剪贴板
    1. .spiner { transform-origin: rightright center; animation: spin .8s infinite linear; }   
    2. .filler { animation: second-half-hide .8s steps(1, end) infinite; }   
    3. .masker { animation: second-half-show .8s steps(1, end) infinite; }  

    其他细节都是定位什么的,很基础的知识,就不

    提示: 本文由整理自网络,如有侵权请联系本站删除!
    本站声明:
    1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
    2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

    上一篇:详解CSS中clear:left/right的用法使用CSS3制作响应式导航菜单的方法CSS中使用clearfix清除浮动的方法CSS clear属性给float带来哪些影响css的border和clear属性使用方法和示例css浮动(float/clear)使用讲解css中的clear属性使用方法实例介绍浅谈CSS中的clear清除浮动

    下一篇:利用CSS3实现文本框的清除按钮相关的一些效果css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果

    相关内容

    -六神源码网