var djt = { $: function (objname) { return document.getelementbyid(objname); }, isie: navigator.appversion.indexof("msie") != -1 ? true : false, addevent: function (l, i, i) { if (l.attachevent) { l.attachevent("on" + i, i) } else { l.addeventlistener(i, i, false) } }, delevent: function (l, i, i) { if (l.detachevent) { l.detachevent("on" + i, i) } else { l.removeeventlistener(i, i, false) } } }; //滚动图片构造函数 // new scrollpicleft('滚动区id','左按钮id','右按钮id',滚动区宽度,翻页宽度,移动速度(单位毫秒,越小越快),每次移动像素(单位px,越大越快),自动播放,自动播放间隔时间,'分页id'); // new scrollpicleft('id','leftid','rightid',958,220,2,8,true,3000); function scrollpicleft(scrollcontid, arrleftid, arrrightid, framewidth, pagewidth, speed, space, autoplay, autoplaytime, dotlistid) { this.scrollcontid = scrollcontid; this.arrleftid = arrleftid; this.arrrightid = arrrightid; this.dotlistid = dotlistid; this.dotclassname = "dotitem"; this.dotonclassname = "dotitemon"; this.dotobjarr = []; this.pagewidth = pagewidth; this.framewidth = framewidth; this.speed = speed; this.space = space; this.pageindex = 0; this.autoplay = autoplay; this.autoplaytime = autoplaytime; var _autotimeobj, _scrolltimeobj, _state = "ready"; this.stripdiv = document.createelement("div"); this.listdiv01 = document.createelement("div"); this.listdiv02 = document.createelement("div"); if (!scrollpicleft.childs) { scrollpicleft.childs = [] }; this.id = scrollpicleft.childs.length; scrollpicleft.childs.push(this); this.initialize = function () { if (!this.scrollcontid) { throw new error("必须指定scrollcontid."); return }; this.scrollcontdiv = djt.$(this.scrollcontid); if (!this.scrollcontdiv) { throw new error("scrollcontid不是正确的对象.(scrollcontid = \"" + this.scrollcontid + "\")"); return }; this.scrollcontdiv.style.width = this.framewidth + "px"; this.scrollcontdiv.style.overflow = "hidden"; this.listdiv01.innerhtml = this.listdiv02.innerhtml = this.scrollcontdiv.innerhtml; this.scrollcontdiv.innerhtml = ""; this.scrollcontdiv.appendchild(this.stripdiv); this.stripdiv.appendchild(this.listdiv01); this.stripdiv.appendchild(this.listdiv02); this.stripdiv.style.overflow = "hidden"; this.stripdiv.style.zoom = "1"; this.stripdiv.style.width = "32766px"; var isie = navigator.useragent.touppercase().indexof("msie") == -1 ? false : true; if (isie) { this.listdiv01.style.stylefloat = "left"; this.listdiv02.style.stylefloat = "left"; } else { this.listdiv01.style.cssfloat = "left"; this.listdiv02.style.cssfloat = "left"; } djt.addevent(this.scrollcontdiv, "mouseover", function("scrollpicleft.childs[" + this.id + "].stop()")); djt.addevent(this.scrollcontdiv, "mouseout", function("scrollpicleft.childs[" + this.id + "].play()")); if (this.arrleftid) { this.arrleftobj = djt.$(this.arrleftid); if (this.arrleftobj) { djt.addevent(this.arrleftobj, "mousedown", function("scrollpicleft.childs[" + this.id + "].rightmousedown()")); djt.addevent(this.arrleftobj, "mouseup", function("scrollpicleft.childs[" + this.id + "].rightend()")); djt.addevent(this.arrleftobj, "mouseout", function("scrollpicleft.childs[" + this.id + "].rightend()")) } }; if (this.arrrightid) { this.arrrightobj = djt.$(this.arrrightid); if (this.arrrightobj) { djt.addevent(this.arrrightobj, "mousedown", function("scrollpicleft.childs[" + this.id + "].leftmousedown()")); djt.addevent(this.arrrightobj, "mouseup", function("scrollpicleft.childs[" + this.id + "].leftend()")); djt.addevent(this.arrrightobj, "mouseout", function("scrollpicleft.childs[" + this.id + "].leftend()")) } }; if (this.dotlistid) { this.dotlistobj = djt.$(this.dotlistid); if (this.dotlistobj) { var pages = math.round(this.listdiv01.offsetwidth / this.framewidth + 0.4), i, tempobj; for (i = 0; i < pages; i++) { tempobj = document.createelement("span"); this.dotlistobj.appendchild(tempobj); this.dotobjarr.push(tempobj); if (i == this.pageindex) { tempobj.classname = this.dotclassname } else { tempobj.classname = this.dotonclassname }; tempobj.title = "第" + (i + 1) + "页"; djt.addevent(tempobj, "click", function("scrollpicleft.childs[" + this.id + "].pageto(" + i + ")")) } } }; if (this.autoplay) { this.play() } }; this.leftmousedown = function () { if (_state != "ready") { return }; _state = "floating"; _scrolltimeobj = setinterval("scrollpicleft.childs[" + this.id + "].moveleft()", this.speed) }; this.rightmousedown = function () { if (_state != "ready") { return }; _state = "floating"; _scrolltimeobj = setinterval("scrollpicleft.childs[" + this.id + "].moveright()", this.speed) }; this.moveleft = function () { if (this.scrollcontdiv.scrollleft + this.space >= this.listdiv01.scrollwidth) { this.scrollcontdiv.scrollleft = this.scrollcontdiv.scrollleft + this.space - this.listdiv01.scrollwidth } else { this.scrollcontdiv.scrollleft += this.space }; this.accountpageindex() }; this.moveright = function () { if (this.scrollcontdiv.scrollleft - this.space <= 0) { this.scrollcontdiv.scrollleft = this.listdiv01.scrollwidth + this.scrollcontdiv.scrollleft - this.space } else { this.scrollcontdiv.scrollleft -= this.space }; this.accountpageindex() }; this.leftend = function () { if (_state != "floating") { return }; _state = "stoping"; clearinterval(_scrolltimeobj); var fill = this.pagewidth - this.scrollcontdiv.scrollleft % this.pagewidth; this.move(fill) }; this.rightend = function () { if (_state != "floating") { return }; _state = "stoping"; clearinterval(_scrolltimeobj); var fill = -this.scrollcontdiv.scrollleft % this.pagewidth; this.move(fill) }; this.move = function (num, quick) { var thismove = num / 5; if (!quick) { if (thismove > this.space) { thismove = this.space }; if (thismove < -this.space) { thismove = -this.space } }; if (math.abs(thismove) < 1 && thismove != 0) { thismove = thismove >= 0 ? 1 : -1 } else { thismove = math.round(thismove) }; var temp = this.scrollcontdiv.scrollleft + thismove; if (thismove > 0) { if (this.scrollcontdiv.scrollleft + thismove >= this.listdiv01.scrollwidth) { this.scrollcontdiv.scrollleft = this.scrollcontdiv.scrollleft + thismove - this.listdiv01.scrollwidth } else { this.scrollcontdiv.scrollleft += thismove } } else { if (this.scrollcontdiv.scrollleft - thismove <= 0) { this.scrollcontdiv.scrollleft = this.listdiv01.scrollwidth + this.scrollcontdiv.scrollleft - thismove } else { this.scrollcontdiv.scrollleft += thismove } }; num -= thismove; if (math.abs(num) == 0) { _state = "ready"; if (this.autoplay) { this.play() }; this.accountpageindex(); return } else { this.accountpageindex(); settimeout("scrollpicleft.childs[" + this.id + "].move(" + num + "," + quick + ")", this.speed) } }; this.next = function () { if (_state != "ready") { return }; _state = "stoping"; this.move(this.pagewidth, true) }; this.play = function () { if (!this.autoplay) { return }; clearinterval(_autotimeobj); _autotimeobj = setinterval("scrollpicleft.childs[" + this.id + "].next()", this.autoplaytime * 1000) }; this.stop = function () { clearinterval(_autotimeobj) }; this.pageto = function (num) { if (_state != "ready") { return }; _state = "stoping"; var fill = num * this.framewidth - this.scrollcontdiv.scrollleft; this.move(fill, true) }; this.accountpageindex = function () { this.pageindex = math.round(this.scrollcontdiv.scrollleft / this.framewidth); if (this.pageindex > math.round(this.listdiv01.offsetwidth / this.framewidth + 0.4) - 1) { this.pageindex = 0 }; var i; for (i = 0; i < this.dotobjarr.length; i++) { if (i == this.pageindex) { this.dotobjarr[i].classname = this.dotclassname } else { this.dotobjarr[i].classname = this.dotonclassname } } } this.initialize(); };