一、loading效果

二、clip-path

css中的剪切clip-path属性是CSS Masking模块的一部分。

矩形

clip-path:inset(top right bottom left round top-raduis right-radius bottom-radius left-radius);

例子:

原图

(690x1035)

.clipPath{
-webkit-clip-path:inset(50px 30px 300px 100px round 0% 0% 0% 0%);
}

剪切结果如下:

(图手动缩小,太大了)

.clipPath{
-webkit-clip-path:inset(130px 70px 300px 100px round % 0% 0% 0%);
}

效果这样:

.clipPath{
-webkit-clip-path:inset(130px 70px 300px 100px round 0% 50% 0% 0%);
}

.clipPath{
-webkit-clip-path:inset(130px 70px 300px 100px round 0% 0% 50% 0%);
}

.clipPath{
-webkit-clip-path:inset(130px 70px 300px 100px round 0% 0% 0% 50%);
}

.clipPath{
-webkit-clip-path:inset(130px 70px 300px 100px round 50% 10% 50% 10%);
}

clip-path:inset(top right bottom left);

其中前四个参数的值大小对应的则是距离原始元素的4个边的距离

圆形

clip-path:circle(radius at x-axis y-axis);//radius表示半径大小,x-axis和y-axis表示圆心坐标(原图的坐标点)

.clipPath{
-webkit-clip-path:circle(230px at 350px 310px);
}

椭圆

clip-path:ellipse(x-rad y-rad at x-axis y-axis);

其中x-rad,y-rad分别表示椭圆的长半轴和短半轴

.clipPath{
-webkit-clip-path:ellipse(230px 180px at 350px 310px);
}

最喜欢的就是下面的技能

多边形

clip-path:polygon(x1 y1,x2,y2,x3,x3,...,xn yn);

根据坐标点围城的图形进行剪切

    .star{
-webkit-clip-path:polygon(50% 0%,63% 38%,100% 38%,69% 59%,82% 100%,50% 75%,18% 100%,31% 59%,0 38%,37% 38%);
width:200px;
height:200px;
background-color: cornflowerblue;
}

三、loading效果实现思路

用两个div进行实现:

将浅颜色的圆放在深颜色的圆上面,下面深颜色的圆不动,大小不变,上面浅颜色的圆由小变大,形成loading的旋转效果。

.circleCakeTop{
background-color: #FB8BBD;
border-radius:50%;//矩形变成圆形
width: 60px;
height: 60px;
position: absolute;
top:15px;
left:15px;
animation:circleCake 2s linear infinite;
-webkit-animation:circleCake 2s linear infinite;
transform:rotate(45deg);//旋转45度,从90度开始画圆
}
@keyframes circleCake{ 0%{
-webkit-clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);
-moz-clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);
-o-clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);
-ms-clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);
clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);//刚开始时候是(30px 30px)-(0px 0px)的一个直线就是没有剪切
}
12.5%{
-webkit-clip-path: polygon(30px 30px,0 0,60px 0,60px 0,60px 0,60px 0);
-moz-clip-path: polygon(30px 30px,0 0,60px 0,60px 0,60px 0,60px 0);
-ms-clip-path: polygon(30px 30px,0 0,60px 0,60px 0,60px 0,60px 0);
-o-clip-path: polygon(30px 30px,0 0,60px 0,60px 0,60px 0,60px 0);
clip-path: polygon(30px 30px,0 0,60px 0,60px 0,60px 0,60px 0);//顺时针1/4圆,动画完成
}
25%{
-webkit-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,60px 60px,60px 60px);
-moz-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,60px 60px,60px 60px);
-ms-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,60px 60px,60px 60px);
-o-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,60px 60px,60px 60px);
clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,60px 60px,60px 60px);//1/4圆到半圆
}
37.5%{
-webkit-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 60px);
-moz-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 60px);
-ms-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 60px);
-o-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 60px);
clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 60px);//半圆到3/4圆
}
50%{
-webkit-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 0px);
-moz-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 0px);
-ms-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 0px);
-o-clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 0px);
clip-path: polygon(30px 30px,0 0,60px 0,60px 60px,0 60px,0px 0px);//3/4圆到整圆
}
62.5%{
-webkit-clip-path: polygon(30px 30px,60px 0px,60px 0,60px 60px,0 60px,0px 0px);
-moz-clip-path: polygon(30px 30px,60px 0px,60px 0,60px 60px,0 60px,0px 0px);
-ms-clip-path: polygon(30px 30px,60px 0px,60px 0,60px 60px,0 60px,0px 0px);
-o-clip-path: polygon(30px 30px,60px 0px,60px 0,60px 60px,0 60px,0px 0px);
clip-path: polygon(30px 30px,60px 0px,60px 0,60px 60px,0 60px,0px 0px);//整圆到3/4圆
}
75%{
-webkit-clip-path: polygon(30px 30px,60px 60px,60px 60px,60px 60px,0 60px,0px 0px);
-moz-clip-path: polygon(30px 30px,60px 60px,60px 60px,60px 60px,0 60px,0px 0px);
-ms-clip-path: polygon(30px 30px,60px 60px,60px 60px,60px 60px,0 60px,0px 0px);
-o-clip-path: polygon(30px 30px,60px 60px,60px 60px,60px 60px,0 60px,0px 0px);
clip-path: polygon(30px 30px,60px 60px,60px 60px,60px 60px,0 60px,0px 0px);//3/4圆到半圆
}
87.5%{
-webkit-clip-path: polygon(30px 30px,0px 60px,0px 60px,0px 60px,0 60px,0px 0px);
-moz-clip-path: polygon(30px 30px,0px 60px,0px 60px,0px 60px,0 60px,0px 0px);
-ms-clip-path: polygon(30px 30px,0px 60px,0px 60px,0px 60px,0 60px,0px 0px);
-o-clip-path: polygon(30px 30px,0px 60px,0px 60px,0px 60px,0 60px,0px 0px);
clip-path: polygon(30px 30px,0px 60px,0px 60px,0px 60px,0 60px,0px 0px);//半圆到1/4圆
}
100%{
-webkit-clip-path: polygon(30px 30px,0 0px,0px 0,0px 0px,0 0px,0 0px);
-moz-clip-path: polygon(30px 30px,0px 0,0px 0,0px 0px,0 0px,0 0px);
-ms-clip-path: polygon(30px 30px,0px 0,0px 0,0px 0px,0 0px,0 0px);
-o-clip-path: polygon(30px 30px,0px 0,0px 0,0px 0px,0 0px,0 0px);
clip-path: polygon(30px 30px,0px 0,0px 0,0px 0px,0 0px,0 0px);//1/4圆到刚开始的状态
}
}

实际的浅颜色圆是由矩形的border-radius:50%属性变成圆形。

注意:自己在编码过程中,为了省劲,有的0后没有加px,导致3/4圆到整圆时候出现错误,加上px后效果正确。严谨一些,以后都加上px。(但是还不知道是为什么)

以上自己的方法,兼容性不好,-webkit-内核的浏览器支持的比较好,FireFox支持的效果很不好,IE就更别说了。

其他方法就需要动一下脑子,张鑫旭大神的一篇博客中提到的方法很好,我是没有想到,多多学习。

链接:http://www.zhangxinxu.com/wordpress/?p=4144

clip-path实现loading圆饼旋转效果以及其他方法的更多相关文章

  1. CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板。

    CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板. CLIP PATH (MASK) GENERATO ...

  2. WPF使用PATH来画圆

    WPF使用Path来画圆, 在 WPF 中可以使用 Path (路径) 来画圆,而 Path 支持两种写法:xaml 代码格式.标记格式,这里介绍的是标记格式: 例子: <Path Data=& ...

  3. [转载]error while loading shared libraries的解決方法

    转自:https://blog.csdn.net/dumeifang/article/details/2963223 error while loading shared libraries的解決方法 ...

  4. 转error while loading shared libraries的解決方法

    error while loading shared libraries的解決方法 者 icq 21:03 | 靜態連結網址 | 迴響 (0) | 引用 (1) | 點閱次數 (270) | Prog ...

  5. 【C#】一个Loading窗体载入与销毁的方法

    写在前面 Minecraft Command Editor 2跳票了近两年的时间(对不起!!).2021年2月,我重启了MCE项目,并正式命名为Minecraft Command Editor 202 ...

  6. 自定义圆饼(利用贝塞尔曲线和CGContext类完成)

    -(void)drawRect:(CGRect)rect{ CGFloat w = self.bounds.size.width; CGFloat h = self.bounds.size.heigh ...

  7. 理解Clip Path

    http://www.w3cplus.com/css3/using-making-sense-of-clip-path.html http://www.cnblogs.com/coco1s/p/602 ...

  8. error while loading shared libraries的解決方法

    我是在启动nginx的时候报这个错误,搜索这个错误时发现这篇文章,非本人(小渡博客)原创. 原文地址:http://blog.csdn.net/dumeifang/article/details/29 ...

  9. DPDK运行出现error while loading shared libraries的解決方法

    问题 error: while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or d ...

随机推荐

  1. [ZPG TEST 114] 阿狸的英文名【水题】

    1.      阿狸的英文名 阿狸最近想起一个英文名,于是他在网上查了很多个名字.他发现一些名字可以由两个不同的名字各取一部分得来,例如John(约翰)的前缀 “John”和Robinson(鲁滨逊) ...

  2. post和get提交服务器编码过程

    参考资料:http://blog.csdn.net/z55887/article/details/46975679 先说出一个知识点: 如果浏览器端编码是UTF-8,那在服务器端解决乱码问题的方法有两 ...

  3. JUnit单元测试&注解

    ①测试方法上必须使用@Test进行修饰 ②测试方法必须使用public void 进行修饰,不能带任何的参数 ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开 ④测试类所在的包 ...

  4. MVP架构模式

    概念解释 MVP是Model(数据) View(界面) Presenter(表现层)的缩写,它是MVC架构的变种,强调Model和View的最大化解耦和单一职责原则 Model:负责数据的来源和封装, ...

  5. 来自锐动天地的直播ios SDK

    直播iOS SDK,可以在手机iOS端实时采集视频,同时在拍摄过程中支持多种实时滤镜效果,只要调用视频直播接口,通过3G.4G.WIFI等网络,推流发送给云端流媒体直播系统处理,并通过CDN视频加速分 ...

  6. JVM最多能创建多少个线程: unable to create new native thread

    转载自:http://www.rigongyizu.com/jvm-max-threads/ 有应用报出这样的异常“java.lang.OutOfMemoryError: unable to crea ...

  7. 新萝卜家园Ghost版Win10系统X32极速装机版2015年4月

    来自:系统妈,系统下载地址:http://www.xitongma.com/windows10/2015-03-30/6638.html 新萝卜家园Ghost Win10 X32 10041电脑城极速 ...

  8. 强大的云存储与应用管理工具DzzOffice1.0 Beta(大桌子办公)发布下载

    之前在9月份我们发布了一份内测版,得到了1000多位朋友参与下载测试.经过2个月,结合测试后朋友们反馈的问题,和开发建议.终于完成了这次Beta版的开发.感谢这两个月中参与测试,和帮助我们完善程序的朋 ...

  9. 对称加密DES加密

    DES加密: des是对称加密,加密和解密需要相同的秘钥,它的密码最长56位,必须是8的倍数,秘钥越长,越安全. package com.trm.util.encrypt; import java.s ...

  10. TensorFlow低阶API(一)—— 简介

    简介 本文旨在知道您使用低级别TensorFlow API(TensorFlow Core)开始编程.您可以学习执行以下操作: 管理自己的TensorFlow程序(tf.Graph)和TensorFl ...