gpt4 book ai didi

javascript - 如何创建自定义 CSS3 加载圈?

转载 作者:太空狗 更新时间:2023-10-29 13:29:17 24 4
gpt4 key购买 nike

我想像这样创建 CSS3 加载圈:

enter image description here

内圈将使用计时器增长。

问题是我可以用什么技术来像这样增长内圈?

我有这个 CSS 代码:

.circle {
width:100px;
height:100px;
border-radius:50px;
background:#fff;
}

.circle 只是一个 div

外圈可以用作背景图片,因为它是静态的。它永远不会改变,只有内部会根据计时器改变。

最佳答案

HTML

在第一个例子中,只创建两个 div,由于 border-radius 属性,它们将呈现圆形。

<div class="ball"></div>
<div class="ball1"></div>

CSS

对于CSS样式很简单,随便玩玩你想要的图形的参数,关于动画只需要使用transform:rotate属性。

.ball {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-top: 5px solid rgba(0,0,0,0);
border-left: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 35px #2187e7;
width: 50px;
height: 50px;
margin: 0 auto;
-moz-animation: spin .5s infinite linear;
-webkit-animation: spin .5s infinite linear;
}

.ball1 {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-top: 5px solid rgba(0,0,0,0);
border-left: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 15px #2187e7;
width: 30px;
height: 30px;
margin: 0 auto;
position: relative;
top: -50px;
-moz-animation: spinoff .5s infinite linear;
-webkit-animation: spinoff .5s infinite linear;
}

@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
}

100% {
-moz-transform: rotate(360deg);
};
}

@-moz-keyframes spinoff {
0% {
-moz-transform: rotate(0deg);
}

100% {
-moz-transform: rotate(-360deg);
};
}

@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
}

100% {
-webkit-transform: rotate(360deg);
};
}

@-webkit-keyframes spinoff {
0% {
-webkit-transform: rotate(0deg);
}

100% {
-webkit-transform: rotate(-360deg);
};
}

第二个示例 CSS3 加载动画循环HTML

第二个示例与标记的先例相同,主要区别在于 CSS。

<div class="circle"></div>
<div class="circle1"></div>

CSS

在这个例子中,我们只是简单地对旋转进行操作,而且我们还插入了一个动画,使我们能够产生脉冲效果。此效果仅在第一个圆圈中有效。

.circle {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-right: 5px solid rgba(0,0,0,0);
border-left: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 35px #2187e7;
width: 50px;
height: 50px;
margin: 0 auto;
-moz-animation: spinPulse 1s infinite ease-in-out;
-webkit-animation: spinPulse 1s infinite linear;
}

.circle1 {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-left: 5px solid rgba(0,0,0,0);
border-right: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 15px #2187e7;
width: 30px;
height: 30px;
margin: 0 auto;
position: relative;
top: -50px;
-moz-animation: spinoffPulse 1s infinite linear;
-webkit-animation: spinoffPulse 1s infinite linear;
}

@-moz-keyframes spinPulse {
0% {
-moz-transform: rotate(160deg);
opacity: 0;
box-shadow: 0 0 1px #2187e7;
}

50% {
-moz-transform: rotate(145deg);
opacity: 1;
}

100% {
-moz-transform: rotate(-320deg);
opacity: 0;
};
}

@-moz-keyframes spinoffPulse {
0% {
-moz-transform: rotate(0deg);
}

100% {
-moz-transform: rotate(360deg);
};
}

@-webkit-keyframes spinPulse {
0% {
-webkit-transform: rotate(160deg);
opacity: 0;
box-shadow: 0 0 1px #2187e7;
}

50% {
-webkit-transform: rotate(145deg);
opacity: 1;
}

100% {
-webkit-transform: rotate(-320deg);
opacity: 0;
};
}

@-webkit-keyframes spinoffPulse {
0% {
-webkit-transform: rotate(0deg);
}

100% {
-webkit-transform: rotate(360deg);
};
}

第三个示例 CSS3 加载动画循环HTML

在这个最新的示例中,我们发现了一个简单的循环,由于 transform:scale 属性而具有动画效果。标记比它的前身更长,但这会根据您要插入的 block 而有所不同。

<div id="block_1" class="barlittle"></div>
<div id="block_2" class="barlittle"></div>
<div id="block_3" class="barlittle"></div>
<div id="block_4" class="barlittle"></div>
<div id="block_5" class="barlittle"></div>

CSS

这里的样式更容易处理,因为我们要将效果应用于每个 block 的 animation:delay 属性。

.barlittle {
background-color: #2187e7;
background-image: -moz-linear-gradient(45deg, #2187e7 25%, #a0eaff);
background-image: -webkit-linear-gradient(45deg, #2187e7 25%, #a0eaff);
border-left: 1px solid #111;
border-top: 1px solid #111;
border-right: 1px solid #333;
border-bottom: 1px solid #333;
width: 10px;
height: 10px;
float: left;
margin-left: 5px;
opacity: 0.1;
-moz-transform: scale(0.7);
-webkit-transform: scale(0.7);
-moz-animation: move 1s infinite linear;
-webkit-animation: move 1s infinite linear;
}

#block_1 {
-moz-animation-delay: .4s;
-webkit-animation-delay: .4s;
}

#block_2 {
-moz-animation-delay: .3s;
-webkit-animation-delay: .3s;
}

#block_3 {
-moz-animation-delay: .2s;
-webkit-animation-delay: .2s;
}

#block_4 {
-moz-animation-delay: .3s;
-webkit-animation-delay: .3s;
}

#block_5 {
-moz-animation-delay: .4s;
-webkit-animation-delay: .4s;
}

@-moz-keyframes move {
0% {
-moz-transform: scale(1.2);
opacity: 1;
}

100% {
-moz-transform: scale(0.7);
opacity: 0.1;
};
}

@-webkit-keyframes move {
0% {
-webkit-transform: scale(1.2);
opacity: 1;
}

100% {
-webkit-transform: scale(0.7);
opacity: 0.1;
};
}

结论

我希望通过本教程,您学会了如何仅使用 CSS3 属性创建简单的循环动画。

关于javascript - 如何创建自定义 CSS3 加载圈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com