Javascript无缝左右滚动

it2025-03-18  15

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html  xmlns ="http://www.w3.org/1999/xhtml" > < head > < meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312"   /> < title ></ title > </ head > < body > < script  type ="text/javascript" > var $ = function (id) {    return "string" == typeof id ? document.getElementById(id) : id;};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, idScrollLeft, idScrollRight, options) {    var oScroll = this, oScroller = $(idScroller), oScrollMid = $(idScrollMid);        this.widthScroller = oScroller.offsetWidth;    this.widthList = oScrollMid.offsetWidth;        if(this.widthList <= this.widthScroller) return;        oScroller.style.overflow = "hidden";    oScrollMid.appendChild(oScrollMid.cloneNode(true));        this.oScroller = oScroller;    this.scroll = true;        this.SetOptions(options);        this.side = 1;//1是左 -1是右    switch (this.options.Side) {        case "right" :            this.side = -1;            break;        case "left" :        default :            this.side = 1;    }        addEventHandler(oScrollMid , "mouseover"function() { oScroll.scroll = false; });    addEventHandler(oScrollMid , "mouseout"function() { oScroll.scroll = true; });        if(idScrollLeft) { addEventHandler($(idScrollLeft), "click"function() { oScroll.side = 1; }); }    if(idScrollRight) { addEventHandler($(idScrollRight), "click"function() { oScroll.side = -1; }); }        this.Scroll();  },  //设置默认属性  SetOptions: function(options) {    this.options = {//默认值      Step:            1,//每次变化的px量      Time:            50,//速度      Side:            "left"//默认滚动方向    };    Object.extend(this.options, options || {});  },  //滚动  Scroll: function() {    if (this.scroll) {        var iScroll = this.oScroller.scrollLeft, iWidth = this.widthList;        if(this.side > 0){            if(iScroll >= (iWidth * 2 - this.widthScroller)){ iScroll -= iWidth; }        } else {            if(iScroll <= 0){ iScroll += iWidth; }        }        this.oScroller.scrollLeft = iScroll + this.options.Step * this.side;//注意scrollLeft超过1400会自动变回1400 注意长度    }    var oScroll = this; window.setTimeout(function(){ oScroll.Scroll(); }this.options.Time);  }};window.onload = function(){    new Scroller("idScroller","idScrollMid""idScrollLeft""idScrollRight");} </ script > < div  id ="idScroller"  style ="width:290px; overflow:hidden" > < div  style ="width:2000px" >      < div  id ="idScrollMid"  style ="float:left;" >        < div  style ="float:left" >   < img  src ="1.jpg"  width ="150px"  height ="150px;" />   </ div >        < div  style ="float:left" >   < img  src ="1.jpg"  width ="150px"  height ="150px;" />   </ div >      </ div > </ div > </ div > < input  id ="idScrollLeft"  type ="button"  value ="向左"   /> < input  id ="idScrollRight"  type ="button"  value ="向右"   /> </ body > </ html >

转载于:https://www.cnblogs.com/cloudgamer/archive/2008/01/15/1040408.html

相关资源:javascript实现的左右无缝滚动效果
最新回复(0)