Heim  >  Artikel  >  Web-Frontend  >  兼容各种浏览器的上下滚动代码_html/css_WEB-ITnose

兼容各种浏览器的上下滚动代码_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:34:441337Durchsuche

直接切入正题

红色的表示为要注意统一的。

蓝色是表示要更改的。

内容高度一定要大于box1的高度否则不会滚动,本框架用的是phpcms,大家可根据自己的框架更改循环。

演示地址http://www.er-china.com/index.php?m=content&c=index&a=lists&catid=789

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
    return destination;
}

function addEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
        oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
        oTarget["on" + sEventType] = fnHandler;
    }
};


var Scroller = Class.create();
Scroller.prototype = {
  initialize: function(idScroller, idScrollMid, options) {
    var oThis = this, oScroller = $1(idScroller), oScrollMid = $1(idScrollMid);
   
    this.SetOptions(options);
    this.Side = this.options.Side || ["up"];//方向
    this.scroller = oScroller;            //对象
    this.speed = this.options.Speed;    //速度
    this.timer = null;                    //时间
    this.pauseHeight = 0;                //定高
    this.pauseWidth = 0;                //定宽
    this.pause = 0;                        //定高(宽)
    this.side = 0;                        //参数
   
    //用于上下滚动
    this.heightScroller = parseInt(oScroller.style.height) || oScroller.offsetHeight;
    this.heightList = oScrollMid.offsetHeight;
   
 
 
    //js取不到css设置的height和width
   
    oScroller.style.overflow = "hidden";
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
   
    addEventHandler(oScroller, "mouseover", function() { oThis.Stop(); });
    addEventHandler(oScroller, "mouseout", function() { oThis.Start(); });
   
    this.Start();
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
      Step:            1,//每次变化的px量
      Speed:        20,//速度(越大越慢)
      Side:            ["up"],//滚动方向:"up"是上,"down"是下,"left"是左,"right"是右
      PauseHeight:    0,//隔多高停一次
      PauseWidth:    0,//隔多宽停一次
      //当上下和左右一起使用时必须设置PauseHeight和PauseWidth来设置转向位置
      PauseStep:    0//停顿时间(PauseHeight或PauseWidth大于0该参数才有效)
    };
    Object.extend(this.options, options || {});
  },
  //转向
  Turn: function() {
    //通过设置方向数组的排列来转向
    this.Side.push(this.Side.shift().toLowerCase());
  },
  //上下滚动
  ScrollUpDown: function() {
    this.pause = this.pauseHeight;
    this.scroller.scrollTop = this.GetScroll(this.scroller.scrollTop, this.heightScroller, this.heightList, this.options.PauseHeight);
    this.pauseHeight = this.pause;
   
    var oThis = this;
    this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
  },

 
  //获取设置滚动数据
  GetScroll: function(iScroll, iScroller, iList, iPause) {
    var iStep = this.options.Step * this.side;
   
    if(this.side > 0){
        if(iScroll >= (iList * 2 - iScroller)){ iScroll -= iList; }
    } else {
        if(iScroll     }
   
    this.speed = this.options.Speed;
    if(iPause > 0){
        if(Math.abs(this.pause) >= iPause){
            this.speed = this.options.PauseStep; this.pause = iStep = 0; this.Turn();
        } else {
            this.pause += iStep;
        }
    }
   
    return (iScroll + iStep);
  },
  //开始
  Start: function() {   
    //方向设置
    switch (this.Side[0].toLowerCase()) {


        case "down" :
            if(this.heightList             this.side = -1;
            this.ScrollUpDown();
            break;
        case "up" :
        default :
            if(this.heightList             this.side = 1;
            this.ScrollUpDown();
    }
  },
  //停止
  Stop: function() {
    clearTimeout(this.timer);
  }
};

window.onload = function(){
    new Scroller("zsbox", "box1",{ Side:["up","left"], PauseHeight:50, PauseWidth:400 });
}


    

   
   
   
   {pc:content action="lists" catid="819" start="0" thumb="1" num="40" order="id asc,listorder asc,updatetime desc"}
   {loop $data $v}
   
   {if $n%4==0}{/if}
   
   {/loop}
   {/pc}   
       //虚位以待
    $ii=(4-$i%4) ;
    for($y=0;$y
    
    
       }
   
   ?>
   
   
   

       

       
兼容各种浏览器的上下滚动代码_html/css_WEB-ITnose

      

   

       

       
兼容各种浏览器的上下滚动代码_html/css_WEB-ITnose

      

    
   
     

  
     

 
   
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn