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的实现效果如下。

这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现

loadingC

在loadingA和loadingB中是通过给高度和宽度增加动画实现的,而loadingC是通过给五个div增加纵向位移实现的。

loadingC实现的关键点就在于translateY的使用,因为动画是从下往上跳动,所以在完成度50%时,translateY设定为负值。

其定义的动画部分代码如下所示。

定义动画

loadingD

loadingD的实现效果如下。

这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现

loadingD效果

通过效果图我们发现有两点差异:

  • loading过程中透明度会发生变化,这个通过opacity实现。

  • 在接近完成时有个上下轻微抖动的效果,这个通过设置小单位的正负translateY值。

得到的动画代码如下。

loadingD动画

loadingE

loadingE的动画效果如下。

loadingE

loadingE的效果同loadingD类似,loadingD是通过纵向的位移变换,可以通过translateY实现。

loadingE是通过水平方向位移变换,可以通过translateX来实现。

而有一点不同的是,loadingE的div初始位置就是translateX(-300px),表示从左侧开始运动。

loadingE动画

loadingF

loadingF定义的动画如下所示。

这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现

loadingF

loadingF是旋转效果,可以很容易想到是通过rotate实现。

loadingF中只有一个div,边框设置为虚线即可,其CSS样式如下。

loadingF基本样式

其定义的动画样式如下。

loadingF定义动画

loadingG&loadingH

loadingG与loadingH的动画效果如下。

这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现

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的效果图如下所示。

这些好看的loading效果,你还只会用第三方库吗?CSS3教你实现

loadingI

loadingI的动画主要涉及到放大缩小和旋转两个方面,放大缩小通过scale实现,旋转通过rotate实现。具体的可以看看github上的完整代码。

结束语

今天这篇文章主要是教大家如何使用CSS3的动画特性去实现loading效果,完全可以不用借助于第三方库,大家也动动手自己实现一下吧。全部代码的话在微信公众号群文件获取!


如果你觉得这篇文章对你有帮助,请关注我的 “web前端EDU ”公众号!~谢谢


web前端/H5/javascript学习群:250777811

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Hibernate从Play生成DDL脚本! 框架项目

好的,因此您一直在使用hibernate属性名称“ hibernate.hbm2ddl.auto ” value “ 更新 ”来不断更新数据库架构, 但是现在您需要一个完整的DDL脚本吗? 从您的Global Class onStart中使用此方法来导出DDL脚本。 只需为其提供实体的包名称&…

C# 设计模式,工厂方法

C#工厂方法 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 7 namespace 工厂方法 {8 class Program {9 static void Main(string[] args) { 10 IFacotry i new Fact…

css3帮你轻松实现圆角效果,不一样的前端页面。

在Web前端页面实现圆角效果,CSS3帮你轻松实现,一个人人皆知的属性 圆角边框的绘制是Web页面和Web应用程序中经常用来美化页面效果的手法之一。今天,小编为大家介绍CSS3提供的可以将矩形变为圆角矩形的一个属性 技术等级:中级 | 适…

使用Vysper,TomEE和PrimeFaces将XMPP服务器嵌入JSF Web应用程序内部

我有一个需要在完成某些工作时通知用户的应用程序。 它使用JSF和Primefaces,因此可以使用大气 (也称为Push)来实现这种通知。 但是另一个有趣的方法是使用嵌入在Java Web应用程序中的XMPP服务器。 好的,好的,您不必嵌…

appium和selenium不同与相同之处

原文来自: https://www.cnblogs.com/zhengshuheng/p/6370398.html selenium是web端的自动化,appium是app端的自动化,它继承了webdriver(也就是selenium 2) 转载于:https://www.cnblogs.com/lv-lxz/p/11118862.html

使用 Visual Studio 编译 wget 为库文件

添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不少,程序可能基于效率或者编码方便的因素…

webpack中实现按需加载

当页面中一个文件过大并且还不一定用到的时候,我们希望在使用到的时候才开始加载这个文件俗称按需加载。这样可以减少页面的响应时间,提高访问速度。 使用webpack打包的出来的文件要实现以上的要求有两种方式,一个是webpack特有的require.en…

【总结】计算机网络常见问题

1、TCP/IP协议与OSI协议 相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。 “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。 计算机网络采用了分层的体系结构…

webpack3的CommonsChunkPlugin插件详解

webpack打出来的包在不做处理的情况下是非常大的,所有依赖都被塞进一个文件中,文件中有业务代码,有业务代码依赖的第三方库代码,还有webpack生成的运行时代码等。这样的一个文件不方便静态资源缓存,并且初始化页面的时…

详细介绍jQuery.outerWidth() 函数具体用法

outerWidth()函数用于设置或返回当前匹配元素的外宽度。外宽度默认包括元素的内边距(padding)、边框(border),但不包括外边距(margin)部分的宽度。你也可以指定参数为true,以包括外边距(margin)部分的宽度。如下图: 如果你要获取其它情况的宽…

SQLite 入门教程(一)基本控制台(终端)命令

一、基本简介 SQLite 是一个自持的(self-contained)、无服务器的、零配置的、事务型的关系型数据库引擎。因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中。SQLite 被应用在 Solaris 10操作系统、Mac OS 操作系统、iPhone 和 Sky…

Web前端开发css基础样式总结

颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-255之间 一般都用16进制表示颜色 单位 1. px像素(Pixel)。像素,与分辨率…

nth-child(n)和nth-of-type(n)

:nth-child(n)&#xff1a;父元素的子元素的第n个 :nth-of-type(n)&#xff1a;父元素的 某类 子元素的第n个 注&#xff1a;n从0起&#xff0c;元素index从1起 nth-child(n)和nth-of-type(n)例&#xff1a; <head><style>body :nth-child(2) {height: 30px;ba…

记录您的里程和社区运行情况:Java EE 7真实体验

miles2run.org是跟踪跑步活动并与亲朋好友共享的简便方法。 可以创建然后跟踪基于天或基于距离的目标。 它还允许创建社区运行目标&#xff0c;并使多个跑步者参与并跟踪他们朝着该目标的活动。 您也可以找出本地跑步者并与他们联系。 该项目已开始&#xff0c;以帮助跟踪#Jav…

oracle在group by时某列有多个值的拼接

最近编码过程中出现了group by后&#xff0c;某些列会有多个值&#xff0c;而我需要把这些多个值的列进行拼接的情况&#xff0c;和大家分享一下。 有如下表student&#xff1a; 我们希望以class分组&#xff0c;每组的信息平铺&#xff0c;效果如下 分组首先想到的肯定是group…

在Spring中使用Asciidoctor:使用Spring MVC渲染Asciidoc文档

Asciidoc是一种基于文本的文档格式&#xff0c;因此如果要将文档提交到版本控制系统中并跟踪不同版本之间的更改&#xff0c;它非常有用。 这使Asciidoc成为编写书籍&#xff0c;技术文档&#xff0c;常见问题解答或用户手册的理想工具。 创建Asciidoc文档后&#xff0c;很可能…

http强缓存在firefox和chrome之间的差异

最近回顾HTTP缓存知识的时候发现了一个问题&#xff0c;设置了强缓存和协商缓存的文件&#xff0c;点击浏览器的刷新按钮的时候在chrome和firefox中的表现不一样。具体表现为chrome走强缓存没有再次发起请求。firefox却在强缓存没有失效的情况下发了请求&#xff0c;返回了304走…

垃圾收集器–串行,并行,CMS,G1(以及Java 8中的新增功能)

4个Java垃圾收集器–错误的选择如何严重影响性能 在2014年&#xff0c;对于大多数开发人员来说&#xff0c;还有两件事仍然是个谜&#xff1a;垃圾收集和了解异性。 由于我对后者知之甚少&#xff0c;所以我认为我会对前者大吃一惊&#xff0c;特别是因为在该领域中&#xff0c…

基于webpack的react脚手架

一、前言&#xff1a;react的cli开发模式太过于简单&#xff0c;好多东西都要自己配置 二、这里有个简单的配置&#xff0c;可以直接上手开发(不熟悉webpack和npm的绕路)&#xff0c;已经完成的配置如下 1&#xff1a;默认ejs模板 2&#xff1a;编译less、scss 3&#xff1…

不要错过使用jOOλ或jOOQ编写Java 8 SQL单行代码的机会

越来越多的人通过为他们的业务采用功能性编程来赶上我们平台的最新更新。 在Data Geekery &#xff0c;我们将Java 8用于jOOQ集成测试&#xff0c;因为将新的Streams API与lambda表达式一起使用使生成临时测试数据变得非常容易。 但是&#xff0c; 我们并不认为JDK提供了尽可…