ajax-dynamic-pages.js
Summary
DHTMLgoodies_scrollingPages class
(C) www.dhtmlgoodies.com, October 2006
This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.
Terms of use:
Look at the terms of use at http://www.dhtmlgoodies.com/index.html?page=termsOfUse
Thank you!
www.dhtmlgoodies.com
Alf Magne Kalleland
function DHTMLgoodies_scrollingPages()
{
var targetId;
var url;
var sackObj;
var currentUrl;
var pageObjects;
var maximumNumberOfPages;
var scrollSpeed;
var currentScrollTop;
this.pageObjects = new Array();
this.currentUrl = false;
this.scrollSpeed = 20;
this.currentScrollTop = 0;
try{
this.sackObj = new sack();
}catch(e){
alert('You need to include the AJAX(SACK) js file');
}
}
DHTMLgoodies_scrollingPages.prototype = {
setTargetId : function(targetId)
{
this.targetId = targetId;
}
,
setUrl : function(url)
{
this.url = url;
}
,
loadPage : function()
{
if(!this.url)return;
if(this.url == this.currentUrl)return;
this.currentUrl = this.url;
this.currentScrollTop = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
var index = this.pageObjects.length;
if(this.maximumNumberOfPages){
if(document.getElementById('DHTMLgoodies_scrollingPages_page' + (index - this.maximumNumberOfPages))){
var obj = document.getElementById('DHTMLgoodies_scrollingPages_page' + (index - this.maximumNumberOfPages));
obj.parentNode.removeChild(obj);
}
}
this.pageObjects[index] = document.createElement('DIV');
this.pageObjects[index].id = 'DHTMLgoodies_scrollingPages_page' + index;
document.getElementById(this.targetId).appendChild(this.pageObjects[index]);
window.refToScrollPageObj = this;
ajax_loadContent('DHTMLgoodies_scrollingPages_page' + index,this.url,'window.refToScrollPageObj.scroll(' + index + ')');
}
,
setMaximumNumberOfPages : function(maximumNumberOfPages)
{
this.maximumNumberOfPages = maximumNumberOfPages;
}
,
setScrollSpeed : function(scrollSpeed)
{
this.scrollSpeed = scrollSpeed;
}
,
scroll : function(index)
{
window.scrollTo(0,this.currentScrollTop);
var obj = document.getElementById('DHTMLgoodies_scrollingPages_page' + index);
var scrollTop = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
var scrollTo = this.getTopPos(obj) + obj.offsetHeight;
if(scrollTo>scrollTop)this.__performScroll(scrollTo);
}
,
__performScroll : function(scrollTo)
{
var scrollTop = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
var initScrollTop = scrollTop;
var rest = scrollTo - scrollTop;
scrollSpeed = Math.round(rest / this.scrollSpeed);
if(scrollSpeed<1)scrollSpeed = 1;
scrollTop = scrollTop + scrollSpeed;
window.scrollTo(0,scrollTop);
scrollTop = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
window.refToScrollPageObj = this;
if(scrollTop < scrollTo && scrollTop!=initScrollTop)setTimeout('window.refToScrollPageObj.__performScroll(' + scrollTo + ')',10);
}
,
getTopPos : function(inputObj)
{
var returnValue = inputObj.offsetTop;
while((inputObj = inputObj.offsetParent) != null){
if(inputObj.tagName!='HTML'){
returnValue += inputObj.offsetTop;
if(document.all)returnValue+=inputObj.clientTop;
}
}
return returnValue;
}
,
getLeftPos : function(inputObj)
{
var returnValue = inputObj.offsetLeft;
while((inputObj = inputObj.offsetParent) != null){
if(inputObj.tagName!='HTML'){
returnValue += inputObj.offsetLeft;
if(document.all)returnValue+=inputObj.clientLeft;
}
}
return returnValue;
}
}
Documentation generated by
JSDoc on Sat Oct 7 17:29:51 2006