css3 动态背景

动态背景

利用多层背景的交替淡入淡出,实现一种背景在不停变换的效果,先看图。 效果图:

DEMO地址

步骤

1.利用css的radial-gradient创建一个镜像渐变的背景。其中的80%
20%
为渐变中心的x,y位置。

具体的radial-gradient用法可以参见这里

.dynbg__bg{
    position: absolute;
    top: 0px;
    left: 0px;
    width:100%;
    height:100%;
    background:-moz-radial-gradient(80% 20%,farthest-side, #edbf47, #D58123);
    background:-webkit-radial-gradient(80% 20%,farthest-side, #edbf47, #D58123);
}

在线代码

2.重复第一步创建4个拥有不同的渐变背景的DIV。渐变中心点的位置分别为80% 20% 80%
80%
 20% 80%20%
20%

.dynbg__bg{
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-size: 100% 100%;
}
.dynbg__bg1{
    background:-moz-radial-gradient(80% 20%,farthest-side, #edbf47, #D58123);
    background:-webkit-radial-gradient(80% 20%,farthest-side, #edbf47, #D58123);
    z-index: 4;
}
.dynbg__bg2{
    background:-moz-radial-gradient(80% 80%,farthest-side, #edbf47, #D58123);
    background:-webkit-radial-gradient(80% 80%,farthest-side, #edbf47, #D58123);
    z-index: 3;
}
.dynbg__bg3{
    background:-moz-radial-gradient(20% 80%,farthest-side, #edbf47, #D58123);
    background:-webkit-radial-gradient(20% 80%,farthest-side, #edbf47, #D58123);
    z-index: 2;
}
.dynbg__bg4{
    background:-moz-radial-gradient(20% 20%,farthest-side, #edbf47, #D58123);
    background:-webkit-radial-gradient(20% 20%,farthest-side, #edbf47, #D58123);
    z-index: 1;
}

四个div的效果

3.将四个div按顺序叠加摆放,并依照顺序将div的透明度由1变为0再变为1。最后一个div的透明度不需要变,所以一个需要变化3个div,每个div的变化有两个状态,所以一共有6个状态。我们将100%除以6,分成0%,16.6667%,33.3333%,50%,66.6667%,83.3333%,100%。每个div在不同阶段的状态如下。

@-webkit-keyframes dynbg__ani1{
  0%{
    opacity: 1;
  }
  16.6667%{
    opacity: 0;
  }
  33.3333%{
    opacity: 0;
  }
  50%{
    opacity: 0;
  }
  66.6667%{
    opacity: 0;
  }
  83.3333%{
    opacity: 0;
  }
  100%{
    opacity: 1;
  }
}
@-webkit-keyframes dynbg__ani2{
  0%{
    opacity: 1;
  }
  16.6667%{
    opacity: 1;
  }
  33.3333%{
    opacity: 0;
  }
  50%{
    opacity: 0;
  }
  66.6667%{
    opacity: 0;
  }
  83.3333%{
    opacity: 1;
  }
  100%{
    opacity: 1;
  }
}
@-webkit-keyframes dynbg__ani3{
  0%{
    opacity: 1;
  }
  16.6667%{
    opacity: 1;
  }
  33.3333%{
    opacity: 1;
  }
  50%{
    opacity: 0;
  }
  66.6667%{
    opacity: 1;
  }
  83.3333%{
    opacity: 1;
  }
  100%{
    opacity: 1;
  }
}

再给div的class加上动画属性

.dynbg__bg{
  ...
  -webkit-transition:all 1s linear;
  -moz-transition:all 1s linear;
  ...
}
.dynbg__bg1{
  ...
  -webkit-animation:dynbg__ani1 infinite 8s;
  -moz-animation:dynbg__ani1 infinite 8s;
}
.dynbg__bg2{
  ...
  -webkit-animation:dynbg__ani2 infinite 8s;
  -moz-animation:dynbg__ani2 infinite 8s;
}
.dynbg__bg3{
  ...
  -webkit-animation:dynbg__ani3 infinite 8s;
  -moz-animation:dynbg__ani3 infinite 8s;
}
.dynbg__bg4{
  ...
}

这样就将3张图片按顺序由显示渐变为透明再变回显示了。

transition的使用方法可以参考这里

animation的使用方法可以参考这里

4.最后在最上面加上一层平铺的半透明的点来增加质感。

.dynbg__bg0{
    background-repeat: repeat;
    background: -webkit-radial-gradient(rgba(255,255,255,0.4) 5%, transparent 10%);
    background: -moz-radial-gradient(rgba(255,255,255,0.4) 5%, transparent 10%);
    background-size: 16px 16px;
    z-index: 5;
}

在线代码

如有问题或者建议请微博@UED天机。我会及时回复

github地址

相关阅读

1.波浪状动态背景

时间: 2024-06-22 02:18:37

css3 动态背景的相关文章

基于CSS3动态背景登录框代码

基于CSS3动态背景登录框代码.这是一款基于jQuery+CSS3实现的带有动画效果的动态背景登陆框特效. 实现的代码. html代码: <div class="htmleaf-container"> <div class="wrapper"> <div class="container"> <h1>Welcome</h1> <form class="form"

jquery css3动态背景用户登录界面特效

@import url(http://fonts.useso.com/css?family=Source+Sans+Pro:200,300); * { box-sizing: border-box; margin: 0; padding: 0; font-weight: 300; } body { font-family: 'Source Sans Pro', sans-serif; color: white; font-weight: 300; } body ::-webkit-input-p

用Canvas为网页添加动态背景

最近刚刚接到为微信公众帐号"玩转三里屯"制作首页的任务.考虑到页面只在手机中浏览,而且手机对canvas的支持又非常好,所以打算使用canvas做点不一样的动画. 首先来看下效果图. 要实现这样的动画普通的CSS3是鞭长莫及了,只能使用Canvas.好在使用canvas也非常简单. Step1. 新建一个画布(<canvas>)元素,并放在在所有按钮和logo的下方以免遮挡前面的元素. <canvas id="canvas" style="

CSS3之背景 background-size background-origin background-clip

[一]background-size  规定背景图像的尺寸 以像素规定尺寸 div { background:url(bg_flower.gif); -moz-background-size:63px 100px; /* 老版本的 Firefox */ background-size:63px 100px; background-repeat:no-repeat; } 以百分比规定尺寸(尺寸相对于父元素的宽度和高度) div { background:url(bg_flower.gif); -m

CSS3 background-image背景图片相关介绍

这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: background-image :设置元素的背景图片. background-repeat :设置如何平铺背景图片. background-attachment :设置背景图片是否固定或随着滚动移动. background-position :设置背景图片的位置. background-size

android 动态背景的实现以及SurfaceView中添加EditText控件

      首先还是一贯作风,我们先看案例: 静态图看不出来效果,如果用过此软件(扎客)的同学们都知道,她的背景会动.怎么样,是不是觉得很时尚,起码比静态的要好(个人观点).其实实现起来并 不复杂,这个如果让做游戏程序员做简直太小儿科了,这里我说明一点,其实我们做应用的也应该多少了解下游戏编程思维,起码对我们做应用有很好的帮助. 下面我简单介绍下实现方式. 实现原理:自定义一个SurfaceView控件.对之不停的onDraw,使得其背景动起来. 对于SurfaceView如果不了解的同学们麻烦

用duilib制作仿QQ2013动态背景登录器

转载请说明原出处,谢谢~~ 在上一篇博客里,我修复了CActiveXUI控件的bug,从而可以使用flash动画来制作程序的背景,这篇博客说明一下应该怎么使用CActiveXUI控件创建透明无窗体的背景. 去年的QQ2013的登陆界面就是动态界面,上篇博客我说道了,Duiengine已经有高人做好了仿QQ界面的代码,我这里只是把QQ2013的动态登陆界面制作出来.而QQ2014又换了全新的界面,不过熟悉UI制作的朋友知道,模仿 QQ2014的登陆界面比QQ2013的还要简单.可以看到QQ2013

为网页添加动态背景 (背景轮播)

为网页添加动态背景 (背景轮播) 设置网页背景 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全屏背景</title> <script src="http://api.asilu.com/cdn/jquery.js,jquery.backstretch.min.js" type

【CSS3 + 原生JS】上升的方块动态背景

GIF图有点大,网速慢的或将稍等片刻或可浏览本人的制作的demo. Demo : 点击查看 HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Glunefish</title> <link rel="stylesheet" href="css/style.cs