关于CSS3的animate如何实现“…”loading动画效果(一)

实现如图所示的点点点loading效果:
关于CSS3的animate如何实现“...”loading动画效果(一)

一:CSS3 animation实现代码

html代码:

提交订单中...

css代码:

.ani_dot {    font-family: simsun;    }:root .ani_dot { /* 这里使用Hack是因为IE6~IE8浏览器下, vertical-align解析不规范,值为bottom或其他会改变按钮的实际高度*/    display: inline-block;    width: 1.5em;    vertical-align: bottom;    overflow: hidden;}@-webkit-keyframes dot {    0% { width: 0; margin-right: 1.5em; }    33% { width: .5em; margin-right: 1em; }    66% { width: 1em; margin-right: .5em; }    100% { width: 1.5em; margin-right: 0;}}.ani_dot {    -webkit-animation: dot 3s infinite step-start;}@keyframes dot {    0% { width: 0; margin-right: 1.5em; }    33% { width: .5em; margin-right: 1em; }    66% { width: 1em; margin-right: .5em; }    100% { width: 1.5em; margin-right: 0;}}.ani_dot {    animation: dot 3s infinite step-start;}

出现的就是如图所示的结果。
注意点:

1.IE10+以及其他浏览器,点点点动画消失,IE6-IE9是普通的点点点文字。2.animate动画是连续的,但是我们这儿是一帧一帧的,一卡一卡的,不是那么连续的效果,用到step-start。3.上面代码还用到了css3的选择器:root。:root为IE9+以及其他现代浏览器Hack, IE6-7甚至IE8下,inline-block水平元素的vertical-align:bottom解析与inline水平是有差异的,会导致高度撑开,因此,display: inline-block要hack处理。

二:动画(animation)的参数详解

由于上面用到了animation动画,这里详细介绍下这个animation的参数。

立即学习“前端免费学习笔记(深入)”;

简介

CSS动画(Animations)简单说就是在一段固定的动画时间内暗中在某一频率内改变其CSS某个或某些值,从而达到视觉上的转换动画效果。Animations的很多方面都是可以控制的,包括动画运行时间,开始值和结束值,还有动画的暂停和延迟其开始时间等。

语法

 =  || 

animation

所有动画属性的简写属性,除了 animation-play-state 属性。

animation-name

规定 @keyframes 动画的名称。就是@keyframes后面跟着的动画名称,本demo本文中名为dot,意思为“点”。

animation-duration

规定动画完成一个周期所花费的秒或毫秒。默认是 0。

animation-timing-function

规定动画的速度曲线。默认是 “ease”。

常见的动画速度参数:

linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)

ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)

ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)

ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)

ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)

step-start:等同于 steps(1, start)

step-end:等同于 steps(1, end)

steps([, [ start | end ]
  ]?):接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。

cubic-bezier(, , ,
  ):特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

animation-delay

规定动画何时开始。默认是 0。也即是指动画延时执行时间。

animation-iteration-count

规定动画被播放的次数。默认是 1。当然,我们可以设置2次,3次,依次递推。还有个无线循环关键字infinite,也即是反复循环播放动画。

animation-direction

规定动画是否在下一周期逆向地播放。默认是 “normal”。当然还有下列值:

reverse:反方向运行

alternate:动画先正常运行再反方向运行,并持续交替运行

alternate-reverse:动画先反运行再正方向运行,并持续交替运行

animation-fill-mode

规定对象动画时间之外的状态。

none:默认值。不设置对象动画之外的状态

forwards:设置对象状态为动画结束时的状态

backwards:设置对象状态为动画开始时的状态

both:设置对象状态为动画结束或开始的状态,动画开始之前是”from”或”0%”关键帧;动画完成之后是”to”或”100%”关键帧状态。

animation-play-state

规定动画是否正在运行或暂停。默认是 "running"。还有个值paused:暂停。

三:animation动画实例

实例一使用from to

p{    width:100px;    height:100px;    background:red;    position:relative;    animation:mymove 5s infinite;    -moz-animation:mymove 5s infinite; /*Firefox*/    -webkit-animation:mymove 5s infinite; /*Safari and Chrome*/}@keyframes mymove{    from {left:0px;}    to {left:200px;}}@-moz-keyframes mymove { /*Firefox*/    from {left:0px;}    to {left:200px;}}@-webkit-keyframes mymove{ /*Safari and Chrome*/    from {left:0px;}    to {left:200px;}}

实例二使用百分比:

@keyframes myfirst{    0%   {background: red; left:0px; top:0px;}    25%  {background: yellow; left:200px; top:0px;}    50%  {background: blue; left:200px; top:200px;}    75%  {background: green; left:0px; top:200px;}    100% {background: red; left:0px; top:0px;}}@-moz-keyframes myfirst{ /* Firefox */    0%   {background: red; left:0px; top:0px;}    25%  {background: yellow; left:200px; top:0px;}    50%  {background: blue; left:200px; top:200px;}    75%  {background: green; left:0px; top:200px;}    100% {background: red; left:0px; top:0px;}}@-webkit-keyframes myfirst{ /* Safari 和 Chrome */    0%   {background: red; left:0px; top:0px;}    25%  {background: yellow; left:200px; top:0px;}    50%  {background: blue; left:200px; top:200px;}    75%  {background: green; left:0px; top:200px;}    100% {background: red; left:0px; top:0px;}}@-o-keyframes myfirst {/* Opera */    0%   {background: red; left:0px; top:0px;}    25%  {background: yellow; left:200px; top:0px;}    50%  {background: blue; left:200px; top:200px;}    75%  {background: green; left:0px; top:200px;}    100% {background: red; left:0px; top:0px;}}

实例三,利用js+Transform和Animation实现3D动画

只有webkit内核的浏览器才能看到相关3D动画效果。
实现效果如图所示:
关于CSS3的animate如何实现“...”loading动画效果(一)

css代码:

body {        font-family: 'Lucida Grande', Verdana, Arial;        font-size: 12px;      }      #stage {        margin: 150px auto;        width: 600px;        height: 400px;        -webkit-perspective: 800;      }      #rotate {        margin: 0 auto;        width: 600px;        height: 400px;        -webkit-transform-style: preserve-3d;        -webkit-animation-name: x-spin;        -webkit-animation-duration: 7s;        -webkit-animation-iteration-count: infinite;        -webkit-animation-timing-function: linear;      }      .ring {        margin: 0 auto;        height: 110px;        width: 600px;        -webkit-transform-style: preserve-3d;        -webkit-animation-iteration-count: infinite;        -webkit-animation-timing-function: linear;      }            .ring > :nth-child(odd) {        background-color: #995C7F;      }      .ring > :nth-child(even) {        background-color: #835A99;      }      .poster {        position: absolute;        left: 250px;        width: 100px;        height: 100px;        opacity: 0.7;        color: rgba(0,0,0,0.9);        -webkit-border-radius: 10px;      }            .poster > p {        font-family: 'Georgia', serif;        font-size: 36px;        font-weight: bold;        text-align: center;        margin-top: 28px;      }      #ring-1 {        -webkit-animation-name: y-spin;        -webkit-animation-duration: 5s;      }      #ring-2 {        -webkit-animation-name: back-y-spin;        -webkit-animation-duration: 4s;      }      #ring-3 {        -webkit-animation-name: y-spin;        -webkit-animation-duration: 3s;      }      @-webkit-keyframes x-spin {        0%    { -webkit-transform: rotateX(0deg); }        50%   { -webkit-transform: rotateX(180deg); }        100%  { -webkit-transform: rotateX(360deg); }      }      @-webkit-keyframes y-spin {        0%    { -webkit-transform: rotateY(0deg); }        50%   { -webkit-transform: rotateY(180deg); }        100%  { -webkit-transform: rotateY(360deg); }      }      @-webkit-keyframes back-y-spin {        0%    { -webkit-transform: rotateY(360deg); }        50%   { -webkit-transform: rotateY(180deg); }        100%  { -webkit-transform: rotateY(0deg); }      }

html代码:

js代码:

const POSTERS_PER_ROW = 12;const RING_RADIUS = 200;function setup_posters (row){    var posterAngle = 360 / POSTERS_PER_ROW;    for (var i = 0; i < POSTERS_PER_ROW; i ++) {      var poster = document.createElement('p');      poster.className = 'poster';            var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';      poster.style.webkitTransform = transform;            var content = poster.appendChild(document.createElement('p'));      content.textContent = i;      row.appendChild(poster);    }}function init (){    setup_posters(document.getElementById('ring-1'));    setup_posters(document.getElementById('ring-2'));    setup_posters(document.getElementById('ring-3'));}window.addEventListener('load', init, false);

以上就是关于CSS3的animate如何实现“…”loading动画效果(一)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1608745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 22:17:59
下一篇 2025年12月23日 22:18:18

相关推荐

  • 关于CSS3的animate如何实现“…”loading动画效果(二)

    box-shadow实现的打点效果 简介 box-shadow理论上可以生成任意的图形效果,当然也就可以实现点点点的loading效果了。 实现原理 html代码,首先需要写如下html代码以及class类名: 订单提交中 css代码 .dotting { display: inline-block…

    2025年12月23日
    000
  • CSS3+jQuery实现环形进度条的详解

    整体思路是:通过裁切(clip)产生两个半圆展示出静态的进度条,而后通过旋转(rotate)角度的变化产生动态效果。 先来回顾两个基础知识点 (1)css的一个不常见的属性: clip: rect(top, right, bottom, left); 这个属性规定了一个裁切的矩形,其中top和bot…

    2025年12月23日 好文分享
    000
  • CSS3实现Material Design的示例代码分享

    不断更新中 预览 这是一个正在完善的css文件,是对原生组件基于标签属性做了美化,对datepicker,select等无法用css实现的暂不考虑在本文内。 按钮 Button 初始按钮 button red orange blue green link 描边按钮 button red orange…

    2025年12月23日
    000
  • 分享几个常用的最新的css3属性

    这里给大家推荐4个css3的新属性,非常的实用,附上示例,有需要的朋友可以好好研究下。做项目经常会用到 css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开始慢慢的去了解并使用css3(还有html5),因为我觉得这是一种趋势,它是一种已经被制定的标准。我…

    2025年12月23日 好文分享
    000
  • 整合20个CSS/CSS3常用属性

    这里我总结了一下平时自己在项目中经常用到的20个css常用的样式,都是些个人的经验,这里分享给大家,希望对大家有所帮助 1.强制文本单行显示:white-space:nowrap; 2.设置溢出文本显示为省略标记:text-overflow:ellipsis;(注:text-overflow:cli…

    好文分享 2025年12月23日
    000
  • 阐述什么是CSS3?

    网页制作Webjx文章简介:CSS3不是新事物,更不是只是围绕border-radius属性实现的圆角。它正耐心的坐在那里,已经准备好了首次登场,呷着咖啡,等着浏览器来铺上红地毯。            CSS3不是新事物,更不是只是围绕border-radius属性实现              …

    好文分享 2025年12月23日
    000
  • 分享22款H5和CSS3的帮助工具

    收集的22款给力的html5和css3帮助工具,需要的朋友可以参考下 1. CSS3 Selectors Test在打开这个地址时,它会自动测试你当前使用浏览器所支持的css属性,然后用一个列表的形式给展示出来;你可以点击列表中列出的每个项目来查看结果,包括一个小例子和相应的解释内容。 2. CSS…

    2025年12月23日 好文分享
    000
  • 介绍CSS3中的几个新技术

    网页制作Webjx文章简介:网页教学网将在这篇文章向大家展示CSS中的5个有趣的新技术:圆角、个别圆角、不透明度、阴影和调整元素大小.            CSS是众所周知且应用广泛的网站样式语言,在它的版本三(CSS3)计划中,新增了一些能够节省时                        …

    2025年12月23日
    000
  • 用css3制作图片翻转效果

    本文给大家分享的是一则使用原生css3实现的图片翻牌效果,十分的炫酷,代码却很简单,这里推荐给有相同需求的小伙伴们。 大家先看下效果演示: 是不是非常不错,下面把实现代码分享给大家。 代码如下: 立即学习“前端免费学习笔记(深入)”; css3 翻牌*{ margin:0; padding:0;}u…

    2025年12月23日
    000
  • 关于CSS3中的content属性实例详解

    这篇文章主要介绍了css3中的content属性使用示例,是为css3入门学习中的基础知识,需要的朋友可以参考下 CSS中主要的伪元素有四个:before/after/first-letter/first-line,在before/after伪元素选择器中,有一个content属性,能够实现页面中的…

    好文分享 2025年12月23日
    000
  • 详解CSS3中10个顶级命令

    css3中必须要知道的10个顶级命令,都是一些不错的效果实现代码,喜欢的朋友可以收藏下1.边框圆角(border radiuas) 这个是我们在平常很常用的吧,以前我在用p圆角的时候,特别特别的痛苦,不管是用css来画圆角,还是用图片来画圆角都不那么容易,但是现在好了,在css3中,直接只需要如下面…

    2025年12月23日 好文分享
    000
  • 简述网页设计师怎么使用好CSS3技术

    在本文中,我们将研究css3的优势,并看一下一些网页设计师是如何使用它们的。最后,我们将了解到从css3中我们能得到什么以及我们如何在我们的项目中使用它的新特性。 前些日子在SmashingMagazine看到一篇关于CSS3新技术不错的文章,它详细介绍了CSS3的新特性和它的使用方法,它包括:浏览…

    2025年12月23日 好文分享
    000
  • css3制作鼠标经过按钮特效

    这篇文章主要为大家介绍了利用css3制作的一款鼠标经过按钮特效,当鼠标放在按钮上,按钮就会发生变化,产生一个动态效果,非常漂亮。需要的朋友可以参考下   今天再给大家带来一款纯css3实现的鼠标经过按钮特效。这款按钮非常简单,但效果很好,非常漂亮。一起看下效果图:   实现的代码。   html代码…

    2025年12月23日
    000
  • 用css3显示隐藏div的实例教程

    显示隐藏一个p特效的方法有很多,下为大家介绍下使用纯css3是如何实现的,感兴趣的朋友可以参考下 代码如下: #showp { background-color:red; width:300px; height:300px; display:none; } .from-below, .from-be…

    好文分享 2025年12月23日
    000
  • CSS3圆角、盒阴影与边框图片的具体详解

    今天开始整理CSS3的知识  其实应该是昨晚写的,不过好像是急性肠胃炎了,痛的一晚上没睡着,蓝瘦香菇 还好今天打点滴睡一觉就好了,看来这吃东西还是注意点好,被我的胃肠报复了 css没什么难的,不过看的同时自己要在浏览器上试一试,试一遍就记住了 光看不做白看 CSS3各个浏览器是存在兼容问题的 不同浏…

    2025年12月23日 好文分享
    000
  • CSS3中的颜色值RGBA以及渐变色的具体详解(图)

    css3之前渐变色图片只能用背景图片 css3的渐变色语法可以让我们省去下载图片的开销 并且在改变浏览器分辨率时有更好的效果 颜色值RGBA 我们熟悉的rgb颜色标准,是由r(red)、g(green)、b(blue)三种颜色叠加变化形成各种颜色 取值0~255,或0~100% rgba就是在rgb…

    2025年12月23日 好文分享
    000
  • CSS3字体与文本效果的示例代码分享

    CSS3允许我们使用自定义字体  也多了一些不错的文本效果 自定义字体 使用自定义字体需要使用@font-face规则 当然首先你要有自定义文字文件 Payen S.Tsung @font-face { font-family: myDIYfont; /*自定义字体名*/ src: url(‘Gin…

    2025年12月23日 好文分享
    000
  • 关于CSS3多重背景及背景图片裁剪和定位以及尺寸的具体详解

    CSS3之前我们可以对背景添加一张图片  css3允许我们在一个元素上添加多个图片 多重背景图片 .demo { width: 600px; height: 200px; border: 1px solid black; background: url(‘1.png’) no-repeat;} 多重…

    2025年12月23日 好文分享
    000
  • CSS3完成图片lowpoly动画效果的过程详解

    本篇文章主要介绍了css3实现任意图片lowpoly动画效果实例,这是一个利用css3的动画属性实现的结合lowpoly(低多边形风格)的效果,主要利用了css3 transform属性的rotate旋转,translate移动,scale缩放 这是一个利用CSS3的动画属性实现的结合lowpoly…

    2025年12月23日 好文分享
    000
  • 通过CSS3伪元素完成逐渐发光的边框的代码详解

    这篇文章主要给大家介绍了利用css3伪元素实现逐渐发光的方格边框的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。 本文介绍的是一个使用伪元素来实现边框逐渐发光的代码,主要用到scale和opacity这两个属性。下面来看看详细的介绍: …

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信