6
this.setAttribute("scrollamount", val);
85
this.setAttribute("scrolldelay", val);
return this.getAttribute("direction");
this.setAttribute("direction", val);
"left"
return this._behavior;
this.setAttribute("behavior", val);
"scroll"
this.setAttribute("loop", val);
-1
return this.getAttribute("onstart");
this._setEventListener("start", val, true);
this.setAttribute("onstart", val);
return this.getAttribute("onfinish");
this._setEventListener("finish", val, true);
this.setAttribute("onfinish", val);
return this.getAttribute("onbounce");
this._setEventListener("bounce", val, true);
this.setAttribute("onbounce", val);
1
0
0
0
0
0
true
"0.9.7"
this.outerDiv.offsetHeight)
corrvalue = this.originalHeight - this.outerDiv.offsetHeight;
this.innerDiv.style.padding = height + " 0";
this.dirsign = 1;
this.startAt = (this._behavior == 'alternate') ? (this.originalHeight - corrvalue) : 0;
this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ?
(parseInt(height) + corrvalue) : (this.originalHeight + parseInt(height));
break;
case "down":
var height = document.defaultView.getComputedStyle(this, "").height;
this.outerDiv.style.height = height;
if (this.originalHeight > this.outerDiv.offsetHeight)
corrvalue = this.originalHeight - this.outerDiv.offsetHeight;
this.innerDiv.style.padding = height + " 0";
this.dirsign = -1;
this.startAt = (this._behavior == 'alternate') ?
(parseInt(height) + corrvalue) : (this.originalHeight + parseInt(height));
this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ?
(this.originalHeight - corrvalue) : 0;
break;
case "right":
if (this.innerDiv.offsetWidth > this.outerDiv.offsetWidth)
corrvalue = this.innerDiv.offsetWidth - this.outerDiv.offsetWidth;
this.dirsign = -1;
this.stopAt = (this._behavior == 'alternate' || this._behavior == 'slide') ?
(this.innerDiv.offsetWidth - corrvalue) : 0;
this.startAt = this.outerDiv.offsetWidth + ((this._behavior == 'alternate') ?
corrvalue : (this.innerDiv.offsetWidth + this.stopAt));
break;
case "left":
default:
if (this.innerDiv.offsetWidth > this.outerDiv.offsetWidth)
corrvalue = this.innerDiv.offsetWidth - this.outerDiv.offsetWidth;
this.dirsign = 1;
this.startAt = (this._behavior == 'alternate') ? (this.innerDiv.offsetWidth - corrvalue) : 0;
this.stopAt = this.outerDiv.offsetWidth +
((this._behavior == 'alternate' || this._behavior == 'slide') ?
corrvalue : (this.innerDiv.offsetWidth + this.startAt));
}
// RTL Support. If text direction is right-to-left and marquee
// axis is horizontal, then negate and swap stopAt and startAt.
var dir = document.defaultView.getComputedStyle(this, "").direction;
if (dir == "rtl") {
if (this._direction == "right" || this._direction == "left") {
var tmp = this.startAt;
this.startAt = -this.stopAt;
this.stopAt = -tmp;
}
}
if (aResetPosition) {
this.newPosition = this.startAt;
this._fireEvent("start", false, false);
}
} //end if
this.newPosition = this.newPosition + (this.dirsign * this._scrollAmount);
if ((this.dirsign == 1 && this.newPosition > this.stopAt) ||
(this.dirsign == -1 && this.newPosition < this.stopAt))
{
switch (this._behavior)
{
case 'alternate':
// lets start afresh
this.startNewDirection = true;
// swap direction
const swap = {left: "right", down: "up", up: "down", right: "left"};
this._direction = swap[this._direction];
this.newPosition = this.stopAt;
if ((this._direction == "up") || (this._direction == "down"))
this.outerDiv.scrollTop = this.newPosition;
else
this.outerDiv.scrollLeft = this.newPosition;
if (this._loop != 1)
this._fireEvent("bounce", false, true);
break;
case 'slide':
if (this._loop > 1)
this.newPosition = this.startAt;
break;
default:
this.newPosition = this.startAt;
if ((this._direction == "up") || (this._direction == "down"))
this.outerDiv.scrollTop = this.newPosition;
else
this.outerDiv.scrollLeft = this.newPosition;
//dispatch start event, even when this._loop == 1, comp. with IE6
this._fireEvent("start", false, false);
}
if (this._loop > 1)
this._loop--;
else if (this._loop == 1) {
if ((this._direction == "up") || (this._direction == "down"))
this.outerDiv.scrollTop = this.stopAt;
else
this.outerDiv.scrollLeft = this.stopAt;
this.stop();
this._fireEvent("finish", false, true);
return;
}
}
else {
if ((this._direction == "up") || (this._direction == "down"))
this.outerDiv.scrollTop = this.newPosition;
else
this.outerDiv.scrollLeft = this.newPosition;
}
var myThis = this;
var lambda = function myTimeOutFunction(){myThis._doMove(false);}
this.runId = window.setTimeout(lambda, this._scrollDelay);
]]>