clip-path实现loading圆饼旋转效果以及其他方法

一、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 50% 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

转载于:https://www.cnblogs.com/deerfig/p/6640552.html

为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.csdn.net/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.csdn.net/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值