搜索一下。以前有个这样的帖子

解决方案 »

  1.   

    <SCRIPT LANGUAGE="JavaScript">
    window.onerror = null;
    var topMargin = 0;
    var slideTime =10;
    var ie4 = (document.all);
    var ns4 = (document.layers);
    function layerObject(id,left) {
    if(ie4) {
    this.obj = document.all[id].style;
    this.obj.left = left-323;
    return this.obj;
    }
    else if(ns4) {
    this.obj = document.layers[id];
    this.obj.left = left;
    return this.obj;
      }
    }
    function layerSetup() {
    floatLyr = new layerObject('floatLayer', pageWidth * .5);
    window.setInterval("main()", 1)
    }
    function floatObject() {
    if (ns4) {
    findHt = window.innerHeight;
    } else if(ie4) {
    findHt = document.body.clientHeight;
      }

    function main() {
    if (ns4) {
    this.currentY = document.layers["floatLayer"].top;
    this.scrollTop = window.pageYOffset;
    mainTrigger();
    }
    else if(ie4) {
    this.currentY = floatLayer.style.pixelTop;
    this.scrollTop = document.body.scrollTop;
    mainTrigger();
      }
    }
    function mainTrigger() {
    var newTargetY = this.scrollTop + this.topMargin;
    if ( this.currentY != newTargetY ) {
    if ( newTargetY != this.targetY ) {
    this.targetY = newTargetY;
    floatStart();
    }
    animator();
      }
    }
    function floatStart() {
    var now = new Date();
    this.A = this.targetY - this.currentY;
    this.B = Math.PI / ( 2 * this.slideTime );
    this.C = now.getTime();
    if (Math.abs(this.A) > this.findHt) {
    this.D = this.A > 0 ? this.targetY - this.findHt : this.targetY + this.findHt;
    this.A = this.A > 0 ? this.findHt : -this.findHt;
    }
    else {
    this.D = this.currentY;
      }
    }
    function animator() {
    var now = new Date();
    var newY = this.A * Math.sin( this.B * ( now.getTime() - this.C ) ) + this.D;
    newY = Math.round(newY);
    if (( this.A > 0 && newY > this.currentY ) || ( this.A < 0 && newY < this.currentY )) {
    if ( ie4 )document.all.floatLayer.style.pixelTop = newY;
    if ( ns4 )document.layers["floatLayer"].top = newY;
      }
    }
    function start() {
    if(ns4) {
    pageWidth = innerWidth;
    pageHeight = innerHeight;
    layerSetup();
    floatObject();
    }
    else if(ie4) {
    pageWidth = document.body.clientWidth;
    pageHeight = document.body.clientHeight;
    layerSetup();
    floatObject();
      }
    }</script>"floatLayer"是图层名字
    调用在 <body onload="start()">