css loading 转动,CSS3创造属于你的旋转loading

今天我们来做一个loading动画,如图所示。

30e905a09da8

006tNbRwly1fcr4ycdb9cg30d80dm0tf.gif首先咱先分析一下。打眼一看,loading图分成三部分:1、外侧3/4圆弧2、内侧浅色圆饼3、内侧深色圆饼。外侧圆弧的制作,上篇文章已经说过了,您可以看这。下面我们主要来介绍圆饼及其动画的实现,详细代码您可以点这。

内侧圆饼制作

首先我们绘制一个背景圆(其实就是两个半圆拼成一个圆),然后让该圆的左右部分颜色一深一浅(这样做是为了转动方便)。然后我们在该圆上做两个半圆位于同一侧(颜色也是一深一浅)。好,上代码。

1.背景圆

#rou {

height: 60px;

width: 30px;

border-radius: 30px 0px 0 30px;

background-color: #f99;

position: absolute;

z-index: 4;

}

#rou1 {

height: 60px;

width: 30px;

border-radius: 0px 30px 30px 0;

background-color: #f24;

position: absolute;

z-index: 4;

left: 30px;

}

效果图

30e905a09da8

1506347382(1).png

2.在背景圆上添半圆

#r {

height: 60px;

width: 30px;

border-radius: 0 30px 30px 0;

background: #f24;

z-index: 7;

left: 30px;

position: absolute;

transform-origin: left center;

animation: r 1s infinite linear;

}

#l {

height: 60px;

width: 30px;

border-radius: 0 30px 30px 0;

background: #f99;

z-index: 7;

left: 30px;

position: absolute;

transform-origin: left center;

animation: l 1s infinite linear;

}

效果图

30e905a09da8

1506347498(1).png

注意,此处添加的两个半圆都在右侧,浅色半圆遮盖了深色半圆。

旋转

先不要着急,我们一起来分析一下下。观察发现,深浅圆交替出现。我们绘制的圆,初始化时,左侧为浅色(仅一个,没有覆盖其他半圆),右侧为深深浅(浅覆盖深)。好的记住这个颜色位置,那么我们这样来做。1、首先深色半圆(非背景圆)从右往左转,转到-180度(逆时针为负),注意它的z-index要最大否则就被覆盖看不见了。然后保持该度数。2、现在左右两侧圆均有两种颜色(深+浅)。由于我们要先显示深色圆,所以现在浅色半圆(非背景圆)要从右至左转出,不能让它显示z-index最小,那么此时右侧的背景深半圆便会渐渐漏出视野。此时深色圆全部显示。3、现在显示浅色圆。我们再来回顾一下,现在圆的左侧为深浅浅,右侧为背景深。现在将深色半圆从左往右转-360度,z-index最小,让左侧浅圆露出。4、同理,保持右侧深半圆不变,将左侧浅半圆旋到右侧,并且z-index最大。

好了终于说完了,容我要喘口气。

30e905a09da8

1506348688(1).png下面上代码

@keyframes r {

0% {

transform: rotate(0deg);

}

25% {

transform: rotate(-180deg);

}

50% {

transform: rotate(-180deg);

z-index: 8;

}

75% {

transform: rotate(-360deg);

z-index: 8;

}

100% {

transform: rotate(-360deg);

}

}

@keyframes l {

0% {

transform: rotate(0deg);

}

25% {

transform: rotate(0deg);

}

50% {

transform: rotate(-180deg);

z-index: 6;

}

75% {

transform: rotate(-180deg);

z-index: 8;

}

100% {

transform: rotate(-360deg);

z-index: 8;

}

}

最后加上外侧圆弧,就得到我们想要的loading,是不是很开心,终于弄好了。详细代码请移驾这里。

欢迎各位朋友批评指正,多多交流。

30e905a09da8

u=4277375608,2152674864&fm=11&gp=0.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSS3遮罩loading是一种常见的网页加载效果,通过使用CSS3的特性来实现。下面是一种简单的实现方式: 首先,在HTML文件中创建一个容器元素,用于包裹loading效果的内容。可以使用一个div元素,设置好宽高和位置。 接着,在CSS文件中给这个容器元素添加样式。可以使用position属性将其定位在页面中心,然后设置背景色和透明度,使其成为一个半透明的遮罩。 然后,在容器元素中添加一个loading效果。可以使用伪类:before或:after来创建一个圆形或旋转的元素。可以使用CSS3的keyframes来设置旋转动画,或者使用transition来实现平滑的过渡效果。 最后,使用JavaScript来监听页面的加载事件,一旦页面的内容加载完毕,就移除这个遮罩层,展示出页面的内容。 总结来说,CSS3遮罩loading是通过使用CSS3的特性来创建一个带有loading效果的遮罩层,用于页面加载时展示loading状态,给用户一个良好的体验。在实现过程中,需要结合HTML、CSS和JavaScript来完成。这种loading效果简单实用,可以根据需求进行灵活的样式和动画设置,提升用户体验。 ### 回答2: CSS3遮罩loading指的是使用CSS3技术实现的一种页面加载动画效果。主要通过遮罩层和旋转动画来展示加载的过程。 首先,我们可以使用一个遮罩层来覆盖整个页面,遮挡住用户的操作,防止用户在加载过程中的干扰。通过设置遮罩层的宽度和高度为100%,使其覆盖整个页面。 接下来,我们可以使用CSS3中的旋转动画来表示加载的过程。通过设置一个旋转的图标(例如一个圆圈或者一个齿轮)在遮罩层的中央,并给这个图标设置一个旋转的动画效果。在CSS3中,我们可以使用关键帧(@keyframes)语法来定义一个旋转动画。通过设置动画的起始状态和结束状态、旋转的角度以及动画的持续时间和重复次数等属性,就可以实现一个旋转的加载动画效果。 最后,加载完成后,可以通过JavaScript或者其他交互方式将遮罩层和加载动画移除,显示真正的页面内容。 总的来说,CSS3遮罩loading通过遮罩层和旋转动画来展示加载过程,使用户在等待加载完成时有了一个视觉的反馈,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值