一个"剑气"加载🌪️

简介: 一个"剑气"加载🌪️

🙇 前言


  • 我们在网页加载的时候总会加上一些过渡效果来引导用户,减少白屏时间,而加载的效果可以用svg也可以使用一些我们封装好的组件,今天就来分享一种"剑气"加载效果。
  • 相信大家看封面都知道效果了,那我们就直接开干吧。


🏋️‍♂️ToDoList


  • 剑气形状
  • 剑气转动
  • 组合剑气


🚴 Just Do It


  • 其实做一个这样的效果仔细看就是有三个类似圆环状的元素进行循环转动,我们只需要拆解出一个圆环来做效果即可,最后再将三个圆环组合起来。


剑气形状

  • 仔细看一道剑气,它的形状是不是很像一把圆圆的镰刀分成一半,而这个镰刀我们可以通过边框和圆角来做。
  • 首先准备一个剑气雏形。
<div class="sword">
    <span>
  </div>
复制代码
  • 我们只需要对一个圆加上一个方向的边框就可以做成半圆的形状,这样类似剑气的半圆环形状就完成了🌪️。
.sword {
  position: relative;
  margin: 200px auto;
  width: 64px;
  height: 64px;
  border-radius: 50%;
}
.sword span{
  position: absolute;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 50%;  
}
.sword :first-child{
  left: 0%;
  top: 0%;
  border-bottom: 3px solid #EFEFFA;
}


剑气转动

  • 因为我们需要剑气一直不停的循环转动,所以我们可以借助cssanimation动画属性就可以自己给它添加一个动画了。
  • animation属性是一个简写属性,可以用于设置以下动画属性分别是:
  • animation-name:指定要绑定到选择器的关键帧的名称
  • animation-duration:动画指定需要多少秒或毫秒完成
  • animation-timing-function:设置动画将如何完成一个周期
  • animation-delay:设置动画在启动前的延迟间隔
  • animation-iteration-count:定义动画的播放次数
  • animation-direction:指定是否应该轮流反向播放动画
  • animation-fill-mode:规定当动画不播放时,要应用到元素的样式
  • animation-play-state:指定动画是否正在运行或已暂停
  • 更多的动画学习可以参考MDN
...
.sword :first-child{
  ...
  animation: sword-one 1s linear infinite;
  ...
}
@keyframes sword-one {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(360deg);
  }
}
...
复制代码
  • 我们可以给定一个不断绕z0deg360deg转动的动画,设定为一秒完成一次一直无限循环,我们来看看效果:

  • 接下来让这个半圆弧分别绕x轴和y轴也转动一定角度即可完成一个剑气的转动。
...
@keyframes sword-one {
  0% {
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  }
}
...
  • 我们来看看完成后的效果:


组合剑气

  • 最后我们只需要再制作两个剑气在组装起来就好了。
<div class="sword">
    <span></span>
    <span></span>
    <span></span>
  </div>
复制代码
  • 给新添的两个span添加动画和样式。
...
.sword :nth-child(2){
  right: 0%;
  top: 0%;
  animation: sword-two 1s linear infinite;
  border-right: 3px solid #EFEFFA;
}
.sword :last-child{
  right: 0%;
  bottom: 0%;
  animation: sword-three 1s linear infinite;
  border-top: 3px solid #EFEFFA;
}
@keyframes sword-two {
  0% {
    transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  }
}
@keyframes sword-three {
  0% {
    transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
  }
}
...
  • 这样我们的剑气加载效果就制作好了,以上就是全部代码了,喜欢的可以拿去用哟。
  • 我们来看看最终的效果吧~


👋 写在最后


  • 首先感谢大家看到这里,这次分享的是剑气加载效果,希望可以帮助到有需要的同学。
  • 如果您觉得这篇文章有帮助到您的的话不妨🍉关注+点赞+收藏+评论+转发🍉支持一下哟~~😛您的支持就是我更新的最大动力。


相关文章
|
前端开发 UED
一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?
一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?
|
2月前
|
缓存 前端开发 JavaScript
一些有效的方法来加快网站的加载速度
【10月更文挑战第8天】一些有效的方法来加快网站的加载速度
114 62
|
2月前
|
缓存 前端开发 JavaScript
测试 SPA 首屏加载速度
【10月更文挑战第14天】测试 SPA 首屏加载速度是一项重要且复杂的工作。通过合理选择测试方法和指标,准确评估首屏加载速度,并结合实际情况采取优化措施,可以有效提升应用的性能和用户体验。在未来,随着技术的不断发展和用户需求的变化,我们需要持续探索和创新测试方法,以适应不断变化的挑战。
|
7月前
|
缓存 前端开发 JavaScript
如何优化网页加载速度?
【5月更文挑战第8天】如何优化网页加载速度?
82 2
|
7月前
|
存储 缓存 前端开发
提高网页加载速度可以从以下几个方面进行优化
【4月更文挑战第25天】提高网页加载速度可以从以下几个方面进行优化
61 5
|
缓存 前端开发 算法
如何优化网页加载速度
在今天互联网高速发展的时代,快速加载网页成为了用户体验的重要因素之一。如果一个网页加载速度过慢,不仅会让用户感到烦躁,还可能导致用户流失和降低搜索引擎排名。因此,优化网页加载速度变得至关重要。
133 0
|
消息中间件 存储 安全
类是如何加载的?
类是如何加载的?
128 0
|
JavaScript 前端开发
react 实现图片正在加载中 加载完成 加载失败三个阶段的
最近博客写道项目列表中,发现这里比较多图片,一开加载会比较慢,然后就想要用一个loading的图片来占位。与此同时,如果图片加载失败那么显示错误的图片,不显示一个原有的错误,那样比较难看。
react 实现图片正在加载中 加载完成 加载失败三个阶段的
一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)(上)
在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记。
113 0
一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)(上)
一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)(下)
在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记。
125 0
一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)(下)
下一篇
DataWorks