现在我要做个类似于广告的图片随页面滚动而动的效果,现在在一个新的页面里这个功能实现了,但是放到了项目里面的首页的时候,图片是显示出来了,但是不随着页面的滚动而动,大家指点下,怎么改;js代码如下:
<STYLE media=screen type=text/css>
#floater {
         POSITION: absolute; VISIBILITY: visible; WIDTH: 10px; Z-INDEX: 10
          }
//不知道为什么要定义floater为样式表!
</STYLE>
<div id="floater" style="position:absolute; left:800px; top:60px; width:152px; height:178px; z-index:12"><img border=0 src="C:\Documents and Settings\Administrator\桌面\3.12\DCPersonAdvertise\WebRoot\images\exclamation.gif" title=有什么问题找我吧,别客气!></div><script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
<SCRIPT language=JavaScript>
     self.onError=null;
     currentX = currentY = 0; 
     whichIt = null; 
     lastScrollX = 0; lastScrollY = 0;
     NS = (document.layers) ? 1 : 0;
     IE = (document.all) ? 1: 0;
     <!-- STALKER CODE -->
     function heartBeat() {
         if(IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }
     if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
         if(diffY != lastScrollY) {
     percent = .1 * (diffY - lastScrollY);
     if(percent > 0) percent = Math.ceil(percent);
     else percent = Math.floor(percent);
                     if(IE) document.all.floater.style.pixelTop += percent;
                     if(NS) document.floater.top += percent; 
     lastScrollY = lastScrollY + percent;
     }
         if(diffX != lastScrollX) {
             percent = .1 * (diffX - lastScrollX);
             if(percent > 0) percent = Math.ceil(percent);
             else percent = Math.floor(percent);
             if(IE) document.all.floater.style.pixelLeft += percent;
             if(NS) document.floater.left += percent;
             lastScrollX = lastScrollX + percent;
         }    
     }
     <!-- /STALKER CODE -->
     <!-- DRAG DROP CODE   鼠标拖放事件-->
     function checkFocus(x,y) { 
     stalkerx = document.floater.pageX;
     stalkery = document.floater.pageY;
     stalkerwidth = document.floater.clip.width;
     stalkerheight = document.floater.clip.height;
     if( (x > stalkerx && x < (stalkerx+stalkerwidth)) && (y > stalkery && y < (stalkery+stalkerheight))) return true;
     else return false;
     }
     function grabIt(e) {
         if(IE) {
             whichIt = event.srcElement;
             while (whichIt.id.indexOf("floater") == -1) {
                 whichIt = whichIt.parentElement;
                 if (whichIt == null) { return true; }
         }
             whichIt.style.pixelLeft = whichIt.offsetLeft;
         whichIt.style.pixelTop = whichIt.offsetTop;
             currentX = (event.clientX + document.body.scrollLeft);
             currentY = (event.clientY + document.body.scrollTop);     
         } else { 
     window.captureEvents(Event.MOUSEMOVE);
     if(checkFocus (e.pageX,e.pageY)) { 
     whichIt = document.floater;
     StalkerTouchedX = e.pageX-document.floater.pageX;
     StalkerTouchedY = e.pageY-document.floater.pageY;
     } 
         }
     return true;
     }
     function moveIt(e) {
         if (whichIt == null) { return false; }
         if(IE) {
         newX = (event.clientX + document.body.scrollLeft);
         newY = (event.clientY + document.body.scrollTop);
         distanceX = (newX - currentX); distanceY = (newY - currentY);
         currentX = newX; currentY = newY;
         whichIt.style.pixelLeft += distanceX;
         whichIt.style.pixelTop += distanceY;
             if(whichIt.style.pixelTop < document.body.scrollTop) whichIt.style.pixelTop = document.body.scrollTop;
             if(whichIt.style.pixelLeft < document.body.scrollLeft) whichIt.style.pixelLeft = document.body.scrollLeft;
             if(whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - whichIt.style.pixelWidth - 20) whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20;
             if(whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5;
             event.returnValue = false;
         } else { 
             whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY);
     if(whichIt.left < 0+self.pageXOffset) whichIt.left = 0+self.pageXOffset;
     if(whichIt.top < 0+self.pageYOffset) whichIt.top = 0+self.pageYOffset;
     if( (whichIt.left + whichIt.clip.width) >= (window.innerWidth+self.pageXOffset-17)) whichIt.left = ((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;
     if( (whichIt.top + whichIt.clip.height) >= (window.innerHeight+self.pageYOffset-17)) whichIt.top = ((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17;
     return false;
         }
     return false;
     }
     function dropIt() {
         whichIt = null;
     if(NS) window.releaseEvents (Event.MOUSEMOVE);
     return true;
     }
     <!-- DRAG DROP CODE 鼠标拖放事件-->
     if(NS) {
         window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);
         window.onmousedown = grabIt;
         window.onmousemove = moveIt;
         window.onmouseup = dropIt;
     }
     if(IE) {
         document.onmousedown = grabIt;
         document.onmousemove = moveIt;
         document.onmouseup = dropIt;
     }
     if(NS || IE) action = window.setInterval("heartBeat()",1);
</SCRIPT>而首页是由<div>层拼起来的。
惯例,小弟先谢过!

解决方案 »

  1.   

    我又找了一个,还是上面的效果,新的页面可以用,放都项目里就不行了 !JS代码如下: <div id="sorollDiv1" style="width:30px; height:50px; background-color:#0000ff; right:10px;position:absolute;top:120px;"></div>
     <script type="text/javascript">
     var lastScrollY=0;
     function heartBeat(){ 
      diffY=document.documentElement.scrollTop; 
      percent=0.1*(diffY-lastScrollY); 
      if(percent>0)percent=Math.ceil(percent); 
      else percent=Math.floor(percent); 
      document.getElementById("sorollDiv1").style.top=parseInt(document.getElementById("sorollDiv1").style.top)+percent+"px";
      lastScrollY=lastScrollY+percent; 
     }
     window.setInterval("heartBeat()",1);
      

  2.   

    兄弟,你的代码比较乱哟,能不能说具体些!你可以采用静态页面中的div标签呀
      

  3.   


    你的代码太多太乱了 看看下面的
    <script> 
    var speed1=10 
    var scroll_end = document.getElementById("scroll_end"); 
    var scroll_div = document.getElementById("scroll_div"); 
       function Marquee1(){ 
    if(scroll_end.offsetWidth-scroll_div.scrollLeft<=0) {
    scroll_div.scrollLeft-=scroll_begin.offsetWidth; 
    }
    else{ 
    scroll_div.scrollLeft++; } 

    var MyMar1=setInterval(Marquee1,speed1) 
    scroll_div.onmouseover=function() {clearInterval(MyMar1)} 
    scroll_div.onmouseout=function() {MyMar1=setInterval(Marquee1,speed1)} 
    </script> 
    <!--广告结束-->
      <a id="a2"></a>
      
    <script type="text/javascript">
    <!--
    function selectsubTrade(typeId)
    {
     
      var url="webShowMerchantDetail.do?method=getTrades&type="+typeId;
      
      getSubCat(url,typeId,"trade","所有行业");
    }function changestatus()
    {
     var flag=true;
     var obj=document.getElementsByName("hot_area");
     for(var i=0;i<obj.length;i++)
    {
    if(obj[i].checked==false){
    flag=false;
      break;
    }

    }
    document.forms[0].allHotArea.checked=flag;
    }function selectAll(checkBoxObj,flag)
    {var obj=eval(checkBoxObj);for(var i=0;i<obj.length;i++)
    {
    obj[i].checked=flag;}
    }//-->
    </script>