css实现web前端最美的loading加载动画!
这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现
前言
loading效果在实际开发中是很常见的,尤其是在Ajax请求的时候,可以给用户一个很好的交互体验。
今天这篇文章我们一起来看看如何通过CSS3实现各种不同的loading效果吧,文章中的代码可以从公众号前端群自取。
CSS3
实现效果
首先我们来看看需要实现的效果。
效果图
然后我们一个个来看都是怎么实现的吧。
loadingA
loadingA的效果就如音乐播放时的动态条一般,不停的连续执行。
其主要实现思路如下:
每个竖状条都是一个简单的div,div为一个小的圆形。
给每个div加上一个动画效果,该动画的效果是高度逐渐变长,最后再变回原样。
每个div延迟不同的时间才开始执行,这样就会有先后的层次感。
然后我们来看看各个部分的代码实现。
基本的div元素
基本的div元素是一个小的圆形。
基本的div元素
定义动画
定义的动画主要是改变div的高度,在完成50%的时候达到最高值,完成100%时恢复到原来高度。
动画效果
设置动画
将定义的动画添加至animation属性,设置一个动画总执行时间,然后给5个div设置不同的延时时间。
设置动画
HTML元素
将以上设置的CSS属性都添加至HTML元素中。
HTML元素
将以上代码写完后,直接在浏览器运行就可以看到如loadingA的效果了。
loadingB
如果细心的看完loadingA的实现过程,一定可以联想到loadingB的实现。
loadingA是通过给高度加动画,那么loadingB就是通过给宽度加动画,同样给5个div不同的延迟时间。
这里我只给出其动画定义,其他的内容与loadingA类似,详细的内容可以通过github去看。
loadingB动画
loadingC
loadingC的实现效果如下。
loadingC
在loadingA和loadingB中是通过给高度和宽度增加动画实现的,而loadingC是通过给五个div增加纵向位移实现的。
loadingC实现的关键点就在于translateY的使用,因为动画是从下往上跳动,所以在完成度50%时,translateY设定为负值。
其定义的动画部分代码如下所示。
定义动画
loadingD
loadingD的实现效果如下。
loadingD效果
通过效果图我们发现有两点差异:
loading过程中透明度会发生变化,这个通过opacity实现。
在接近完成时有个上下轻微抖动的效果,这个通过设置小单位的正负translateY值。
得到的动画代码如下。
loadingD动画
loadingE
loadingE的动画效果如下。
loadingE
loadingE的效果同loadingD类似,loadingD是通过纵向的位移变换,可以通过translateY实现。
loadingE是通过水平方向位移变换,可以通过translateX来实现。
而有一点不同的是,loadingE的div初始位置就是translateX(-300px),表示从左侧开始运动。
loadingE动画
loadingF
loadingF定义的动画如下所示。
loadingF
loadingF是旋转效果,可以很容易想到是通过rotate实现。
loadingF中只有一个div,边框设置为虚线即可,其CSS样式如下。
loadingF基本样式
其定义的动画样式如下。
loadingF定义动画
loadingG&loadingH
loadingG与loadingH的动画效果如下。
loadingG&loadingH
loadingG与loadingH类似,loadingH在loadingG的基础上增加了几个点。
loadingG中是通过设置一个纵向的div-1,在该div-1内增加一个div-2,div-2就是转动的圆点,div-2通过绝对定位计算出实际位置,当div-1大小变化时,div-2也应该重新计算位置。
div-2的CSS代码如下所示。
loadingG基本样式
在loadingH中,div-1内有四个div,分别表示转动的四个圆点,也是通过绝对定位计算偏移位置。
最后设置动画,只需要让div-1在一个动画周期内旋转360度即可。
loadingG
loadingI
loadingI的效果图如下所示。
loadingI
loadingI的动画主要涉及到放大缩小和旋转两个方面,放大缩小通过scale实现,旋转通过rotate实现。具体的可以看看github上的完整代码。
结束语
今天这篇文章主要是教大家如何使用CSS3的动画特性去实现loading效果,完全可以不用借助于第三方库,大家也动动手自己实现一下吧。全部代码的话在微信公众号群文件获取!
如果你觉得这篇文章对你有帮助,请关注我的 “web前端EDU ”公众号!~谢谢
css实现web前端最美的loading加载动画!的更多相关文章
- CSS动画实例:Loading加载动画效果(一)
一些网站或者APP在加载新东西的时候,往往会给出一个好看有趣的Loading图,大部分的Loading样式都可以使用CSS3制作出来,它不仅比直接使用gif图简单方便,还能节省加载时间和空间.下面介绍 ...
- CSS动画实例:Loading加载动画效果(三)
3.小圆型Loading 这类Loading动画的基本思想是:在呈现容器中定义1个或多个子层,再对每个子层进行样式定义,使得其均显示为一个实心圆形,最后编写关键帧动画控制,使得各个实心圆或者大小发生改 ...
- 2款不同样式的CSS3 Loading加载动画 附源码
原文:2款不同样式的CSS3 Loading加载动画 附源码 我们经常看到的Loading加载很多都是转圈圈的那种,今天我们来换一种有创意的CSS3 Loading加载动画,一种是声波形状的动画,另一 ...
- HTML5 五彩圆环Loading加载动画实现教程
原文:HTML5 五彩圆环Loading加载动画实现教程 今天我们要来介绍一款效果很特别的HTML5 Loading加载动画,不像其他的Loading动画,这款Loading动画颜色很丰富,并且在转圈 ...
- vue+elementUI+axios实现的全局loading加载动画
在项目中,很多时候都需要loading加载动画来缓解用户的焦虑等待,比如说,我打开了一个页面,而这个页面有很多接口请求,但浏览器的请求并发数就那么几个,再加上如果网速不行的话,那么这时候,用户很可能就 ...
- 16款纯CSS3实现的loading加载动画
分享16款纯CSS3实现的loading加载动画.这是一款实用的可替代GIF格式图片的CSS3加载动画代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div clas ...
- 10个样式各异的CSS3 Loading加载动画
前几天我在园子里分享过2款很酷的CSS3 Loading加载动画,今天又有10个最新的Loading动画分享给大家,这些动画的样式都不一样,实现起来也并不难,你很容易把它们应用在项目中,先来看看效果图 ...
- 原生JS+ CSS3创建loading加载动画;
效果图: js创建loading show = function(){ //loading dom元素 var Div = document.createElement("div" ...
- QT自定义控件系列(二) --- Loading加载动画控件
本系列主要使用Qt painter来实现一些基础控件.主要是对平时自行编写的一些自定义控件的总结. 为了简洁.低耦合,我们尽量不使用图片,qrc,ui等文件,而只使用c++的.h和.cpp文件. 由于 ...
随机推荐
- ubuntu下eclipse 安装记录
基本是参考:http://www.metsky.com/archives/611.html 完成. 中间遇到小问题,在此记录下,方便遇到同样问题的难友. 先说下快速打开命令行快捷键:Ctrl+Alt+ ...
- js获取可编辑区域光标位置
请到简书中看,地址: http://www.jianshu.com/p/19a507cd5fd7 github测试例子 https://github.com/Stevenzwzhai/plugs/tr ...
- Lua1
使用lua进行脚本编程有很多优点: 1 代码体积小 2 执行速度快 3 安全性较高等 4 但是最大的优点是修改后的代码不需要重新编译即可生效,而高级语言的代码经过修改后需要经过重新编译或者解释后才能生 ...
- Tensorflow实现LSTM识别MINIST
import tensorflow as tf import numpy as np from tensorflow.contrib import rnn from tensorflow.exampl ...
- php天龙八部
<?php /* 一.操作步骤: 连接MySQL数据库 判断是否连接成功 选择数据库 设置字符集 准备SQL语句 向MySQL服务发送SQL语句 解析处理结果集 释放结果集,关闭数据库连接 */ ...
- Java系列学习说明
最近要回顾以前的开发知识了,每天一个案例,争取早日成为一名合格的程序猿,现在就是猴娃子级别的.
- IPv6的一些特殊地址
IPv6的一些特殊地址 2008年7月3日第二次修正! 昨天是修正了地址部分,本想发上来的,没来得及.今天修正了NDP协议,接下来会是路由和转换部分. 总结一下各协议的精华:OSPF在于LSA,B ...
- sql或oracle插入数据时进行md5加密
1.sql简单直接调用: SELECT hashbytes(') ; 2.oracle要复杂些 首写需要建函数: CREATE OR REPLACE FUNCTION MD5( passwd IN V ...
- 通过VS2010性能分析来查找代码中那些地方最损耗资源
在编写完成一个程序后,大家都比较关心程序的性能如何,想把程序优化得更好.很多时候凭个人直觉来优化程序是件非常不靠普的事情,即使你是一个优秀的开人员也很难准确地判断程序中那些出现问题.VS2010提供了 ...
- 基于RRT的机器人自主探索建图
一.方法讲解: 本项目分为三个部分:机器人周围一定范围内基于RRT的全局检测, 根据上一步检测的未知区域点执行sklearn.cluster.MeanShift聚类,获取聚类中心: 根据聚类中心计算各 ...