 Inside Technique : Animated Page Sets : Code
<SCRIPT>
/* The animated page library is copyright 1998 insideDHTML.com, LLC. All rights reserved.
This code can be reused as long as the above copyright notice and www.insideDHTML.com
URL is maintained. */
ie4 = document.all!=null
var pageLists = new Array()
function Constants() {
// Sliding contents
this.PAGE_STANDARD = 0
this.PAGE_SLIDELEFT = 1
this.PAGE_SLIDERIGHT = 2
this.PAGE_SLIDEUP = 3
this.PAGE_SLIDEDOWN = 4
}
var _constants = new Constants()
function getItem(id) {
if (ie4)
return document.all[id]
else
return document.layers[id]
}
function getChildren(el) {
if (ie4)
return el.children
else
return el.document.layers
}
function slideAway(cnt, p, idx, dir, how) {
var page = pageLists[idx].pageList[p]
switch (dir) {
case 0:
if (!how)
hideElement(page)
else
showElement(page)
cnt = pageLists[idx].cnt
break;
case 1:
if (ie4)
page.style.pixelLeft=page.offsetLeft + pageLists[idx]._amount
else
page.left=page.left + pageLists[idx]._amount
break;
case 2:
if (ie4)
page.style.pixelLeft=page.offsetLeft + pageLists[idx]._amount
else
page.left=page.left + pageLists[idx]._amount
break;
case 3:
if (ie4)
page.style.pixelTop=page.offsetTop + pageLists[idx]._amount
else
page.top=page.top + pageLists[idx]._amount
break;
case 4:
if (ie4)
page.style.pixelTop=page.offsetTop + pageLists[idx]._amount
else
page.top=page.top + pageLists[idx]._amount
break;
}
cnt++
if (cnt=this.pageCount) || (idx==this.currentPage)) return
if (arguments[1]==null)
type = _constants.PAGE_STANDARD
else
type = arguments[1]
if (arguments[2]!=null)
this._nextType = arguments[2]
else
this._nextType = type
if (this._animation==null) {
this._next = idx
if (ie4) {
setupType(this, type, this.currentPage, false)
} else
{
setupTypeNS(this, type, this.currentPage, false)
}
var f = "slideAway(0,"+this.currentPage+"," + this.index+","+type+",false)"
this._animation = setTimeout(f,0)
}
}
function getVisible(list) {
var idx = 0
var pages = list.length
if (ie4)
while ((idx < pages) && (list[idx].style.visibility==""))
idx++
return idx
}
function hideElement(el) {
if (ie4)
el.style.visibility="hidden"
else
el.visibility = "hidden"
}
function showElement(el) {
if (ie4)
el.style.visibility="visible"
else
el.visibility="show"
}
function nextPage() {
var idx = this.currentPage+1
if (idx == this.pageCount)
idx = 0
this.setPage(idx, arguments[0], arguments[1])
}
function prevPage() {
var idx = this.currentPage-1
if (idx == -1)
idx = this.pageCount-1
this.setPage(idx, arguments[0], arguments[1])
}
function hidePage(idx) {
hideElement(this.pageList[idx])
}
function showPage(idx) {
showElement(this.pageList[idx])
}
function PageList(el,cnt) {
var curPage = null
this.owner = el
this.pageList = getChildren(el)
this.pageCount = this.pageList.length
this.currentPage = getVisible(this.pageList)
this.setPage = setPage
this.hidePage = hidePage
this.showPage = showPage
this.nextPage = nextPage
this.prevPage = prevPage
this.cnt = cnt
// Used to track animations
this.index = pageLists.length
pageLists[pageLists.length] = this
return this
}
function setPageSet(id) {
var el = getItem(id)
cnt = arguments[1]
if (cnt==null)
cnt=10
el._pageList = new PageList(el,cnt)
return el._pageList
}
</SCRIPT>
Discuss and Rate this Article© 1997-2000 InsideDHTML.com, LLC. All rights reserved. |