当前位置: 首页 > news >正文

有趣的css - 两个圆形加载效果

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一款小清新的加载动画,适用于 app 列表加载,页面加载或者弹层内容延迟加载等场景。

最新文章通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

知识点:
1️⃣ :nth-child 选择器
2️⃣ 混合模式 mix-blend-mode
3️⃣ filter 滤镜
4️⃣ animation 动画

思路:创建两个圆形,调整混合模式,开启滤镜,然后设置动画属性让两个圆形移动起来。

适用于 app 列表加载,页面加载或者弹层内容延迟加载等场景。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<div class="loading64"><div class="circle64"></div><div class="circle64"></div>
</div>

整体一个 div 标签包裹,然后两个子 div 作为两个圆形元素。

css 部分代码

.loading64{width: 100px;height: 60px;position: relative;display: flex;justify-content: center;align-items: center;
}
.circle64{width: 24px;height: 24px;border-radius: 50%;position: absolute;animation: eff64 2s ease-in-out infinite;mix-blend-mode: darken;   /*混合模式*/filter: blur(2px);  /*模糊滤镜*/
}
.circle64:nth-child(1){background-color: #00FFFF;
}
.circle64:nth-child(2) {background-color: #FFFF00;animation-delay: 1s;
}
@keyframes eff64{0%, 50%, 100% {transform: translateX(0)}25% {transform: translateX(70%)}75% {transform: translateX(-70%)}
}

1、定义加载整体 .loading64 的基本样式,设置 display: flex 布局,让子元素平行垂直居中。

2、子标签圆形元素 .circle64 ,定义其样式大小,设置 animation 动画,并且开启混合模式 mix-blend-mode,增加模糊滤镜 filter: blur(...)

3、通过 :nth-child 选择器,分别给两个圆形设置不同的背景颜色,并且给第二个圆形元素设置动画延迟播放 animation-delay: 1s,让第二个圆形元素动画延迟 1 秒播放。

4、给第 2 步中的 animation 动画增加关键帧,让两个圆形元素在合并、分开时有停顿感,增强整个加载的运动感。

提示: 混合模式 mix-blend-mode 有多个值,感兴趣的可以试试其它值,如果同时使用多个值,可以使用英文逗号隔开。

mix-blend-mode: normal;  /* 默认值 */
mix-blend-mode: multiply;
mix-blend-mode: screen;
mix-blend-mode: overlay;
mix-blend-mode: darken;  /* 本文中使用的 darken 值, */
mix-blend-mode: lighten;
mix-blend-mode: color-dodge;
mix-blend-mode: color-burn;
mix-blend-mode: hard-light;
mix-blend-mode: soft-light;
mix-blend-mode: difference;
mix-blend-mode: exclusion;
mix-blend-mode: hue;
mix-blend-mode: saturation;
mix-blend-mode: color;
mix-blend-mode: luminosity;

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><link rel="stylesheet" href="style.css"><title>两个圆形加载效果</title></head><body><div class="app"><div class="loading64"><div class="circle64"></div><div class="circle64"></div></div></div></body>
</html>

css 样式

/** style.css **/
.app{width: 100%;height: 100vh;background-color: #ffffff;position: relative;display: flex;justify-content: center;align-items: center;
}
.loading64{width: 100px;height: 60px;position: relative;display: flex;justify-content: center;align-items: center;
}
.circle64{width: 24px;height: 24px;border-radius: 50%;position: absolute;animation: eff64 2s ease-in-out infinite;mix-blend-mode: darken;filter: blur(2px);
}
.circle64:nth-child(1){background-color: #00FFFF;
}
.circle64:nth-child(2) {background-color: #FFFF00;animation-delay: 1s;
}
@keyframes eff64{0%, 50%, 100% {transform: translateX(0)}25% {transform: translateX(70%)}75% {transform: translateX(-70%)}
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读


CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。

我是 Just,这里是「设计师工作日常」,求点赞求关注!

相关文章:

  • MVS net笔记和理解
  • JAVA面试题大全(九)
  • Web(数字媒体)期末作业
  • Centos 7 上安装【Docker】
  • RPC原理技术
  • docker ps显示的参数具体是什么意思
  • java集合类详解
  • 【大数据篇】Hadoop:大数据处理的核心基石
  • 发现未来声音,靠谱的AI配音平台
  • 【云原生】K8s管理工具--Kubectl详解(一)
  • 什么是住宅IP代理?为什么需要家庭 IP 代理
  • xcode按下delete键不能删除不能使用,解决办法
  • uniappx 获取设备唯一标识(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U
  • 二叉数之插入操作
  • 如何写好科研论文(讨论)
  • Android交互
  • C++类中的特殊成员函数
  • JavaScript DOM 10 - 滚动
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Redux系列x:源码分析
  • RxJS: 简单入门
  • Vue组件定义
  • XForms - 更强大的Form
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 仿天猫超市收藏抛物线动画工具库
  • 构建二叉树进行数值数组的去重及优化
  • 回顾2016
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 通信类
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 延迟脚本的方式
  • 一起参Ember.js讨论、问答社区。
  • 在Mac OS X上安装 Ruby运行环境
  • ionic入门之数据绑定显示-1
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #NOIP 2014# day.1 T2 联合权值
  • (¥1011)-(一千零一拾一元整)输出
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2)STL算法之元素计数
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)Oracle存储过程编写经验和优化措施
  • ./configure,make,make install的作用
  • .bat批处理(一):@echo off
  • .libPaths()设置包加载目录
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net 代码性能 - (1)
  • .NET命名规范和开发约定
  • ;号自动换行
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [20161101]rman备份与数据文件变化7.txt