- UID
- 58374
- 帖子
- 49
- 精华
- 0
- 贡献
- 0
- 推广
- 0
- 有效BUG
- 0
- 注册时间
- 2007-5-13
|
今天做公司网站圣诞改版,网站是用ASP.NET做的,为了实现雪花飘落效果,本人写了一个JAVASCRIPT脚本,ASP.NET的页面在TW中运行,发现脚本运行速度非常缓慢,同比在IE6/7中速度都比较快,
而在HTML的静态页面中就正常,希望开发组验证一下
HTML页面代码如下:
<html>
<title></title>
<head>
<SCRIPT language="javascript">
<!--
function snowStart(dot_number)
{//启动雪花飘落过程(参数dot_number:雪花点数目)
var i,snow_dot_html,dot_image;
dot_image = "../img/snow1.GIF";//雪花点图像
snow_dot_html = '<IMG id="snow_dot" border="0" src="' + dot_image;
snow_dot_html += '" style="position: absolute; left: -1; top: -1" width="20" height="20">';
for(i=0;i<dot_number;i++)
{//为当前文档添加多个表示雪花的IMG标记,并给出相同的id,以便以数组形式访问这些图像
document.write(snow_dot_html);
}
snowing();
}
function snowing()
{//移动雪花点的位置,以模拟雪花飘落
var body_width,body_height,i,dot,tempy;
body_width = document.body.clientWidth;
body_height = document.body.clientHeight;
for(i=0;i<snow_dot.length/2;i++)
{//移动每个雪花
dot = snow_dot;//某个雪花对象
if(tempinfo==0)
{
dot.own_Y = 50+document.body.clientHeight/(snow_dot.length/2)*i; //Y坐标值
dot.own_am = Math.random()*40;//(左右)摆动幅度
dot.own_X = Math.random()*60 ;
dot.own_X1=dot.own_am + 1000;
dot.own_dx = 0;
}
dot.own_offsetY = Math.random()*3;//Y轴方向的偏移量
//(左右)摆动幅度
dot.own_dx_offset = 0.05 + Math.random()/10;
if(dot.style.pixelTop<0 || dot.style.pixelTop > (body_height - dot.height - 5))
{//如果雪花点落在可视浏览区之外,则重新设置其初始位置
dot.own_Y=0;
}
dot.own_dx += dot.own_dx_offset;
dot.own_Y += dot.own_offsetY;
dot.style.pixelTop = dot.own_Y;
dot.style.pixelLeft = body_width -100-(dot.own_X + dot.own_am * Math.sin(dot.own_dx));
}
for(i=snow_dot.length/2;i<snow_dot.length;i++)
{//移动每个雪花
dot = snow_dot;//某个雪花对象
if(tempinfo==0)
{
dot.own_Y = 50+document.body.clientHeight/(snow_dot.length/2)*(i-snow_dot.length/2); //Y坐标值
dot.own_am = Math.random()*60;//(左右)摆动幅度
dot.own_X = Math.random()*60 ;
dot.own_X1=dot.own_am + 1000;
dot.own_dx = 0;
}
dot.own_offsetY = Math.random()*3;//Y轴方向的偏移量
//(左右)摆动幅度
dot.own_dx_offset = 0.05 + Math.random()/10;
if(dot.style.pixelTop<0 || dot.style.pixelTop > (body_height - dot.height - 5))
{//如果雪花点落在可视浏览区之外,则重新设置其初始位置
dot.own_Y=0;
}
dot.own_dx += dot.own_dx_offset;
dot.own_Y += dot.own_offsetY;
dot.style.pixelTop = dot.own_Y;
dot.style.pixelLeft = dot.own_X + dot.own_am * Math.sin(dot.own_dx)+50;
} tempinfo=1;
self.setTimeout("snowing()",40);
}
//-->
</SCRIPT>
<SCRIPT language="javascript">
<!--
function snowStart1(dot_number)
{//启动雪花飘落过程(参数dot_number:雪花点数目)
var i,snow_dot_html,dot_image;
dot_image = "../img/snow2.GIF";//雪花点图像
snow_dot_html = '<IMG id="snow_dot1" border="0" src="' + dot_image;
snow_dot_html += '" style="position: absolute; left: -1; top: -1" width="10" height="10">';
for(i=0;i<dot_number;i++)
{//为当前文档添加多个表示雪花的IMG标记,并给出相同的id,以便以数组形式访问这些图像
document.write(snow_dot_html);
}
snowing1();
}
function snowing1()
{//移动雪花点的位置,以模拟雪花飘落
var body_width,body_height,i,dot,tempy;
body_width = document.body.clientWidth;
body_height = document.body.clientHeight;
for(i=0;i<snow_dot1.length/2;i++)
{//移动每个雪花
dot = snow_dot1;//某个雪花对象
if(tempinfo1==0)
{
dot.own_Y = 50+document.body.clientHeight/(snow_dot1.length/2)*i; //Y坐标值
dot.own_am = Math.random()*40;//(左右)摆动幅度
dot.own_X = Math.random()*60 ;
dot.own_X1=dot.own_am + 1000;
dot.own_dx = 0;
}
dot.own_offsetY = Math.random()*3;//Y轴方向的偏移量
//(左右)摆动幅度
dot.own_dx_offset = 0.05 + Math.random()/10;
if(dot.style.pixelTop<0 || dot.style.pixelTop > (body_height - dot.height - 5))
{//如果雪花点落在可视浏览区之外,则重新设置其初始位置
dot.own_Y=0;
}
dot.own_dx += dot.own_dx_offset;
dot.own_Y += dot.own_offsetY;
dot.style.pixelTop = dot.own_Y;
dot.style.pixelLeft = body_width -100-(dot.own_X + dot.own_am * Math.sin(dot.own_dx));
}
for(i=snow_dot1.length/2;i<snow_dot1.length;i++)
{//移动每个雪花
dot = snow_dot1;//某个雪花对象
if(tempinfo1==0)
{
dot.own_Y = 50+document.body.clientHeight/(snow_dot1.length/2)*(i-snow_dot1.length/2); //Y坐标值
dot.own_am = Math.random()*60;//(左右)摆动幅度
dot.own_X = Math.random()*60 ;
dot.own_X1=dot.own_am + 1000;
dot.own_dx = 0;
}
dot.own_offsetY = Math.random()*3;//Y轴方向的偏移量
//(左右)摆动幅度
dot.own_dx_offset = 0.05 + Math.random()/10;
if(dot.style.pixelTop<0 || dot.style.pixelTop > (body_height - dot.height - 5))
{//如果雪花点落在可视浏览区之外,则重新设置其初始位置
dot.own_Y=0;
}
dot.own_dx += dot.own_dx_offset;
dot.own_Y += dot.own_offsetY;
dot.style.pixelTop = dot.own_Y;
dot.style.pixelLeft = dot.own_X + dot.own_am * Math.sin(dot.own_dx)+50;
}
tempinfo1=1;
self.setTimeout("snowing1()",20);
}
//-->
</SCRIPT>
</head>
<body>
<script>
var tempinfo=0;
var tempinfo1=0;
snowStart(30);
snowStart1(50);
</script>
</body>
</html>
这个运行正常,但在ASPX页面中就不正常了
上面用到的两个图片在下面
下面这个是编译好的ASPX文件,.NET 3.5环境,开发组可以在IIS中看一下,雪花飘动不正常
[ 本帖最后由 流云万变 于 2008-12-5 16:03 编辑 ] |
|