CSS主页面中怎么加雪花飘落效果代码

html-css04

CSS主页面中怎么加雪花飘落效果代码,第1张

<html>

<head>

<title>网页特效|Linkweb.cn/Js|---页面漫天飞雪</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

</head>

<body bgcolor="#000000" onLoad="snow()">

<script language="JavaScript">

<!--

N = 40

Y = new Array()

X = new Array()

S = new Array()

A = new Array()

B = new Array()

M = new Array()

V = (document.layers)?1:0

iH=(document.layers)?window.innerHeight:window.document.body.clientHeight

iW=(document.layers)?window.innerWidth:window.document.body.clientWidth

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

Y[i]=Math.round(Math.random()*iH)

X[i]=Math.round(Math.random()*iW)

S[i]=Math.round(Math.random()*5+2)

A[i]=0

B[i]=Math.random()*0.1+0.1

M[i]=Math.round(Math.random()*1+1)

}

if (V){

for (i = 0i <Ni++)

{document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFF0' CLIP='0,0,"+M[i]+","+M[i]+"'></LAYER>")}

}

else{

document.write('<div style="position:absolutetop:0pxleft:0px">')

document.write('<div style="position:relative">')

for (i = 0i <Ni++)

{document.write('<div id="si" style="position:absolutetop:0left:0width:'+M[i]+'height:'+M[i]+'background:#fffff0font-size:'+M[i]+'"></div>')}

document.write('</div></div>')

}

function snow(){

var H=(document.layers)?window.innerHeight:window.document.body.clientHeight

var W=(document.layers)?window.innerWidth:window.document.body.clientWidth

var T=(document.layers)?window.pageYOffset:document.body.scrollTop

var L=(document.layers)?window.pageXOffset:document.body.scrollLeft

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

sy=S[i]*Math.sin(90*Math.PI/180)

sx=S[i]*Math.cos(A[i])

Y[i]+=sy

X[i]+=sx

if (Y[i] >H){

Y[i]=-10

X[i]=Math.round(Math.random()*W)

M[i]=Math.round(Math.random()*1+1)

S[i]=Math.round(Math.random()*5+2)

}

if (V){document.layers['sn'+i].left=X[i]document.layers['sn'+i].top=Y[i]+T}

else{si[i].style.pixelLeft=X[i]si[i].style.pixelTop=Y[i]+T}

A[i]+=B[i]

}

setTimeout('snow()',10)

}

//-->

</script>

<script language="Javascript">

<!--

function selectAll(theField){

var tempval=eval("document."+theField)

tempval.focus()

tempval.select()

}

//-->

</script>

</table>

</body>

没用Java写过,现这种效果最好是用DriectX或者OpenGL里实现,要不,用Java这类托管语言来做的话,所有的东西都是面向对象的,堆和托管堆交互很频繁,还有开N多线程,线程的数量是有限制的。如果你需要的效果是直接在屏幕上即没有容器的那种,可以直接操作显存试试,这个要用底层语言比如C嵌汇编操作显存的文件映射区域等等,其中雪花飘落的过程用一种计算表达式来实现,比如其中有一些速度因子,大小因子,轨迹因子,等等(看自己喜好)。记得以前写过一个DriectX里的粒子运动效果,和雪花飘落的功能很相似,只是它不能直接在桌面上显示,需要容器。