注册 登录
编程论坛 ASP技术论坛

请教一下各位,这段代码哪里有问题呢?

jeonlee 发布于 2011-12-10 20:54, 471 次点击
<SCRIPT type=text/javascript>
function FloatTop()
{
 var startX1 =document.body.offsetWidth-205 ,startY1 = 5;
 var startX2 =0,startY2 = 95;
 var ns = (navigator.appName.indexOf("Netscape") != -1);
 var d = document;
 function ml(id,startX,startY)
 {
  var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
  if(d.layers)el.style=el;
  el.sP=function(x,y){this.style.left=x;this.style.top=y;};
  el.x = startX;
  el.y = startY;
  return el;
 }
 window.stayTopLeft=function()
 {
  var pY = ns ? pageYOffset : document.body.scrollTop;
  ftlObj.y += (pY + startY1 - ftlObj.y)/8;
  ftlObj1.y += (pY + startY2 - ftlObj1.y)/8;
  ftlObj.sP(document.body.scrollLeft+document.body.offsetWidth-125, ftlObj.y);
  ftlObj1.sP(ftlObj1.x, ftlObj1.y);
  setTimeout("stayTopLeft()", 30);
 }
//     ftlObj = ml("divStay",document.body.scrollLeft+document.body.offsetWidth-125,0);
//     ftlObj1 = ml("divStayTopLeft",0,30);
 ftlObj = ml("divStay",(document.body.scrollLeft+document.body.offsetWidth)/2+220,0);
 ftlObj1 = ml("divStayTopLeft",(document.body.scrollLeft+document.body.offsetWidth)/2+490,30);
 stayTopLeft();
}
FloatTop();
</SCRIPT>


请教一下各位,这段代码哪里有问题呢?
我在学做网站,现在网站一直反复加载,最后导致CPU占用到100%,是否是这段代码的问题呢?

感谢各位老师指教,谢谢!!!
1 回复
#2
yms1232011-12-12 10:33
<SCRIPT type=text/javascript>
function FloatTop()
{
var startX1 =document.body.offsetWidth-205 ,startY1 = 5;
var startX2 =0,startY2 = 95;
var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function ml(id,startX,startY)
{
  var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
  if(d.layers)el.style=el;
  el.sP=function(x,y){this.style.left=x;this.style.top=y;};
  el.x = startX;
  el.y = startY;
  return el;
}
window.stayTopLeft=function()
{
  var pY = ns ? pageYOffset : document.body.scrollTop;
  ftlObj.y += (pY + startY1 - ftlObj.y)/8;
  ftlObj1.y += (pY + startY2 - ftlObj1.y)/8;
  ftlObj.sP(document.body.scrollLeft+document.body.offsetWidth-125, ftlObj.y);
  ftlObj1.sP(ftlObj1.x, ftlObj1.y);
  setTimeout("stayTopLeft()", 30);
}
//     ftlObj = ml("divStay",document.body.scrollLeft+document.body.offsetWidth-125,0);
//     ftlObj1 = ml("divStayTopLeft",0,30);
ftlObj = ml("divStay",(document.body.scrollLeft+document.body.offsetWidth)/2+220,0);
ftlObj1 = ml("divStayTopLeft",(document.body.scrollLeft+document.body.offsetWidth)/2+490,30);
stayTopLeft();
}
FloatTop();
</SCRIPT>
这个是LZ自己写的?
setTimeout("stayTopLeft()", 30);导致CPU100%的这句话最有可能,这里设置了每30毫秒无限重复执行 stayTopLeft();这个函数
里面用了不少算法,看代码像是某种移动滚动条的特效。
1