如何用css制作图片自上而下落下来的动画?

html-css014

如何用css制作图片自上而下落下来的动画?,第1张

可以使用CSS中的animation属性和@keyframes规则来实现图片自上而下落下来的动画效果。例如:

# image {

position: relative//图片的相对位置

animation: falling 1s linear//动画名称为falling,持续时间1s,动画速度变化线性

}

@keyframes falling {

0% { top: 0px} //初始时图片位于顶部

100% { top: 300px} //最终时图片位于300px处

}

创建动画序列,需要使用animation属性或其子属性,该属性允许配置动画时间、时长以及其他动画细节,但该属性不能配置动画的实际表现,动画的实际表现是由 @keyframes规则实现,具体情况参见使用keyframes定义动画序列小节部分。

transition也可实现动画。transition强调过渡,是元素的一个或多个属性发生变化时产生的过渡效果,同一个元素通过两个不同的途径获取样式,而第二个途径当某种改变发生(如hover)时才能获取样式,这样就会产生过渡动画。

把这段加到你网页里面就可以了,不是CSS,是Javascript

花瓣变叉叉是因为下面语句中的图片地址失效或者你的电脑没有连接上网络

STAR[0] = "http://blog.com.cn/skin/lixia/236605054.gif"

.....

<SCRIPT language=JavaScript1.2>

<!-- Begin

//<!-- Original: Altan ([email protected]) -->

//<!-- Web Site: http://www.altan.hr/snow -->

// Script arranged by Hisa (http://www.suisen.sakura.ne.jp/~ikitai/js/)

var no = 13// STAR number?@?P¡ë?¨C¨º?¨¦?o?¨¦¡ë?¡®??¨¬¨C??¡±

var speed = 10// smaller number moves the STAR faster

STAR = new Array()

STAR[0] = "http://blog.com.cn/skin/lixia/236605054.gif"

STAR[1] = "http://blog.com.cn/skin/lixia/236596767.gif"

STAR[2] = "http://blog.com.cn/skin/lixia/236597338.gif"

STAR[3] = "http://blog.com.cn/skin/lixia/236598420.gif"

STAR[4] = "http://blog.com.cn/skin/lixia/236599138.gif"

STAR[5] = "http://blog.com.cn/skin/lixia/236600240.gif"

var ns4up = (document.layers) ? 1 : 0 // browser sniffer

var ie4up = (document.all) ? 1 : 0

var dx, xp, yp // coordinate and position variables

var am, stx, sty // amplitude and step variables

var i, doc_width = 1500, doc_height = 1800

if (ns4up) {

doc_width = self.innerWidth

doc_height = self.innerHeight

} else if (ie4up) {

doc_width = document.body.clientWidth

doc_height = document.body.clientHeight

}

dx = new Array()

xp = new Array()

yp = new Array()

am = new Array()

stx = new Array()

sty = new Array()

j = 0

for (i = 0i <no++ i) {

dx[i] = 0 // set coordinate variables

xp[i] = Math.random()*(doc_width-50) // set position variables

yp[i] = Math.random()*doc_height

am[i] = Math.random()*20// set amplitude variables

stx[i] = 0.02 + Math.random()/10// set step variables

sty[i] = 0.7 + Math.random()// set step variables

if (ns4up) { // set layers

if (i == 0) {

document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\"" + STAR[j] + "\" border=\"0\"></layer>")

} else {

document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\"" + STAR[j] + "\" border=\"0\"></layer>")

}

} else if (ie4up) {

if (i == 0) {

document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absoluteZ-INDEX: "+ i +" VISIBILITY: visibleTOP: 15pxLEFT: 15pxwidth:1\"><img src=\"" + STAR[j] + "\" border=\"0\"></div>")

} else {

document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absoluteZ-INDEX: "+ i +" VISIBILITY: visibleTOP: 15pxLEFT: 15pxwidth:1\"><img src=\"" + STAR[j] + "\" border=\"0\"></div>")

}

}

if (j == (STAR.length-1)) { j = 0} else { j += 1}

}

function STAR_NS() { // Netscape main animation function

for (i = 0i <no++ i) { // iterate for every dot

yp[i] += sty[i]

if (yp[i] >doc_height-50) {

xp[i] = Math.random()*(doc_width-am[i]-30)

yp[i] = 0

stx[i] = 0.02 + Math.random()/10

sty[i] = 0.7 + Math.random()

doc_width = self.innerWidth

doc_height = self.innerHeight

}

dx[i] += stx[i]

document.layers["dot"+i].top = yp[i]

document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i])

}

setTimeout("STAR_NS()", speed)

}

function STAR_IE() { // IE main animation function

for (i = 0i <no++ i) { // iterate for every dot

yp[i] += sty[i]

if (yp[i] >doc_height-50) {

xp[i] = Math.random()*(doc_width-am[i]-30)

yp[i] = 0

stx[i] = 0.02 + Math.random()/10

sty[i] = 0.7 + Math.random()

doc_width = document.body.clientWidth

doc_height = document.body.clientHeight

}

dx[i] += stx[i]

document.all["dot"+i].style.pixelTop = yp[i]

document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i])

}

setTimeout("STAR_IE()", speed)

}

if (ns4up) {

STAR_NS()

} else if (ie4up) {

STAR_IE()

}

// End -->

</SCRIPT>