代码:
程序代码
<!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 ">
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)</title>
</หัว>
<ร่างกาย>
<ประเภทสคริปต์=ข้อความ/จาวาสคริปต์>
var $ = ฟังก์ชั่น (id) {
ส่งคืน "string" == typeof id ? document.getElementById(id) : id;
-
วาร์คลาส = {
สร้าง: ฟังก์ชั่น () {
ฟังก์ชันส่งคืน () {
this.initialize.apply (สิ่งนี้ ข้อโต้แย้ง);
-
-
-
Object.extend = function (ปลายทาง, แหล่งที่มา) {
สำหรับ (คุณสมบัติ var ในแหล่งที่มา) {
ปลายทาง [คุณสมบัติ] = แหล่งที่มา [คุณสมบัติ];
-
จุดหมายปลายทางขากลับ;
-
ฟังก์ชั่น addEventHandler (oTarget, sEventType, fnHandler) {
ถ้า (oTarget.addEventListener) {
oTarget.addEventListener (sEventType, fnHandler, เท็จ);
} อื่น ๆ ถ้า (oTarget.attachEvent) {
oTarget.attachEvent("เปิด" + sEventType, fnHandler);
} อื่น {
oTarget["on" + sEventType] = fnHandler;
-
-
var Scroller = Class.create();
Scroller.ต้นแบบ = {
เริ่มต้น: ฟังก์ชั่น (idScroller, idScrollMid, ตัวเลือก) {
var oThis = นี่, oScroller = $(idScroller), oScrollMid = $(idScrollMid);
this.SetOptions(ตัวเลือก);
this.Side = this.options.Side || ["ขึ้น"];//方向
this.scroller = oScroller; //对象
this.speed = this.options.Speed; //速度
this.timer = โมฆะ; //时间
นี้.pauseHeight = 0; //定高
นี้.pauseWidth = 0; //定宽
นี้.หยุดชั่วคราว = 0; //定高(宽)
นี่ด้าน = 0; //参数
//用于上下滚动
this.heightScroller = parseInt (oScroller.style.height) || oScroller.offsetHeight;
this.heightList = oScrollMid.offsetHeight;
//用于左右滚动
this.widthScroller = parseInt (oScroller.style.width) || oScroller.offsetWidth;
this.widthList = oScrollMid.offsetWidth;
//js取不到css设置ความสูงและความกว้าง
oScroller.style.overflow = "ซ่อน";
oScrollMid.appendChild(oScrollMid.cloneNode(จริง));
oScrollMid.appendChild(oScrollMid.cloneNode(จริง));
addEventHandler(oScroller, "mouseover", function() { oThis.Stop(); });
addEventHandler(oScroller, "mouseout", function() { oThis.Start(); });
นี้.Start();
-
//设置默认属性
SetOptions: ฟังก์ชั่น (ตัวเลือก) {
this.options = {//默认值
ขั้นตอน: 1,//每次变化的px量
ความเร็ว: 20,//速度(越大越慢)
ด้านข้าง: ["ขึ้น"],//滚动方向:"ขึ้น"是上,"ลง"是下,"ซ้าย"是左,"ขวา"是右
PauseHeight: 0,//隔多高停一次
PauseWidth: 0,//隔多宽停一次
//当上下和左右一起使用时必须设置PauseHeight和PauseWidth来设置转向位置
PauseStep: 1000//停顿时间(PauseHeight或PauseWidth大于0该参数才มี效)
-
Object.extend (this.options, ตัวเลือก || {});
-
//转向
เลี้ยว: ฟังก์ชั่น () {
//通过设置方向数组的排列来转向
this.Side.push(this.Side.shift().toLowerCase());
-
//上下滚动
ScrollUpDown: ฟังก์ชั่น () {
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.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
-
//左右滚动
ScrollLeftRight: ฟังก์ชั่น () {
this.pause = this.pauseWidth;
// 注意:scrollLeft超过1400会自动变回1400 注意长度
this.scroller.scrollLeft = this.GetScroll(this.scroller.scrollLeft, this.widthScroller, this.widthList, this.options.PauseWidth);
this.pauseWidth = this.pause;
var oThis = นี้;
this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
-
//获取设置滚动数据
GetScroll: ฟังก์ชั่น (iScroll, iScroller, iList, iPause) {
var iStep = this.options.Step * this.side;
ถ้า(this.side > 0){
if(iScroll >= (iList * 2 - iScroller)){ iScroll -= iList; -
} อื่น {
ถ้า (iScroll <= 0) { iScroll += iList; -
}
this.speed = this.options.Speed;
ถ้า(iPause > 0){
ถ้า(Math.abs(this.pause) >= iPause){
this.speed = this.options.PauseStep; นี้.หยุดชั่วคราว = iStep = 0; นี่เทิร์น();
} อื่น {
this.pause += iStep;
-
}
กลับ (iScroll + iStep);
-
//เริ่มต้น始
เริ่มต้น: function() {
//document.getElementById("test").innerHTML+=sTurn+",";
//方向设置
สวิตช์ (this.Side[0].toLowerCase()) {
กรณี "ถูกต้อง" :
ถ้า (this.widthList < this.widthScroller) กลับ;
นี่ด้าน = -1;
นี้.ScrollLeftRight();
หยุดพัก;
กรณี "ซ้าย" :
ถ้า (this.widthList < this.widthScroller) กลับ;
นี่ด้าน = 1;
นี้.ScrollLeftRight();
หยุดพัก;
กรณี "ลง" :
ถ้า (this.heightList < this.heightScroller) กลับ;
นี่ด้าน = -1;
นี้.ScrollUpDown();
หยุดพัก;
กรณี "ขึ้น" :
ค่าเริ่มต้น :
ถ้า (this.heightList < this.heightScroller) กลับ;
นี่ด้าน = 1;
นี้.ScrollUpDown();
-
-
//停止
หยุด: ฟังก์ชั่น() {
clearTimeout(this.timer);
-
-
</SCRIPT>
<สไตล์>
.ตัวเลื่อน {line-height:50px; เส้นขอบ: 1px ทึบ #000000; การขยาย:0px 10px; ความสูง:50px; ความกว้าง:400px;}
.ตัวเลื่อน *{ระยะขอบ:0px; การขยาย:0px;}
.ScrollMid {ลอย: ซ้าย;}
.ScrollMid ul{ความกว้าง:800px;ลอย:ซ้าย;}
.ScrollMid li{รายการสไตล์:ไม่มี; ลอย:ซ้าย; ความกว้าง:390px; ช่องว่างภายในซ้าย: 10px; ความสูงของบรรทัด: 50px; -
/
สไตล์> <DIV class=Scroller id=idScroller>
<DIV style="WIDTH: 1600px">
<คลาส DIV=ScrollMid id=idScrollMid>
<UL>
<LI>顺德于1993年被批准为广东省综合改革试点。 </LI>
<LI>2006年顺德成为首个GDP超过1000亿的县级行政单位。 </LI>
<LI>2000至2003年顺德均在中国百强县排名中位居榜首。 </LI>
<LI>2005年顺德实现内生产总值856.11亿元。 </LI></UL></DIV></DIV></DIV>
<สคริปต์>
new Scroller("idScroller", "idScrollMid",{ Side:["up","left"], PauseHeight:50, PauseWidth:400 });
</สคริปต์>
</ร่างกาย>
</html>