android xml 加载动画,使用css实现android系统的loading加载动画

web常用的loading图标有2种, 一种是ios的"菊花", 一种是android的"环". 今天我们用svg实现android的"环"动画, 下节课实现ios的"菊花".

0a67e320950a2bd554c52c0f3d09526a.gif

注意 : gif帧数少的原因, 实际动画效果是很 平滑

的.

xml(svg)

首先我们定义svg的画布尺寸为 50×50 , 在浏览器中缩放为 36×36 显示(这个36你可以根据实际需要调整), 定义环的圆心坐标为 25,25 , 半径为20 (算下 周长大概为125 , 后面会用到), 颜色为 currentColor 获取父元素的color属性的值, 环的宽度为5像素, 看下在没写css前的效果:

a04a45b099c24e14d2d8a280e8c0e835.png

scss

.a-loading {

&-android {

animation: rotate 2s linear infinite;

transform-origin: center center;

>circle {

display: inline-block;

animation: dash 1500ms ease-in-out infinite;

stroke-linecap: round; // 端点是圆形

color: currentColor;

}

@keyframes rotate {

100% {

transform: rotate(360deg);

}

}

@keyframes dash {

0% {

stroke-dasharray: 1, 200;

}

50% {

stroke-dasharray: 100, 200;

stroke-dashoffset: -45;

}

100% {

stroke-dasharray: 100, 200;

stroke-dashoffset: -124;

}

}

}

}

stroke-dasharray

先解释stroke-dasharray , 他是用来定义虚线的, 比如 stroke-dasharray="50, 20" 表示实线部分为50, 间隙20的虚线:

33997c67b55282e60b42462cc08afadb.png

449969bb420057df22315239b6301310.png

试想一下, 如果环也用虚线表示, 并且让 单位实线 部分的长度在环的周长范围内变化,这不就实现了(半环/满环等形态), 下面分别是stroke-dasharray 的值为 25, 200 /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值