/* Name: slide.js Author: Niko Roberts Date: July 2005 Desc: This script was written by Niko Roberts for controlling div sliding in both IE and Firefox To use just create similar code to the following:
Click the image to move the image and this text upwards or downwards
Click the image to move the image and this text left or right
and import this JS file into your html code. Modification History: v2.0.0, Nicholas Roberts, 2-Mar-2009 - Created functions to also control vertical movement */ function IEmoveIn(obName,mid,stepLength,minLeft,maxLeft) { clearTimeout(moveid[mid]) mid++; if (document.getElementById(obName).style.pixelLeft < maxLeft) { document.getElementById(obName).style.pixelLeft = document.getElementById(obName).style.pixelLeft + stepLength moveid[mid]=setTimeout("IEmoveIn(\"" + obName + "\"," + mid + "," + stepLength + "," + minLeft + "," + maxLeft + ")",1) } } function IEmoveOut(obName,mid,stepLength,minLeft,maxLeft) { clearTimeout(moveid[mid]) mid++; if (document.getElementById(obName).style.pixelLeft > minLeft) { document.getElementById(obName).style.pixelLeft= document.getElementById(obName).style.pixelLeft - stepLength moveid[mid]=setTimeout("IEmoveOut(\"" + obName + "\"," + mid + "," + stepLength + "," + minLeft + "," + maxLeft + ")",1) } } function MOZmoveIn(obName,mid,stepLength,minLeft,maxLeft) { clearTimeout(moveid[mid]) mid++; if (parseInt(document.getElementById(obName).style.left) < maxLeft) { document.getElementById(obName).style.left = parseInt(document.getElementById(obName).style.left) + stepLength + "px"; moveid[mid]=setTimeout("MOZmoveIn(\"" + obName + "\"," + mid + "," + stepLength + "," + minLeft + "," + maxLeft + ")",5) } } function MOZmoveOut(obName,mid,stepLength,minLeft,maxLeft) { clearTimeout(moveid[mid]) mid++; if (parseInt(document.getElementById(obName).style.left) > minLeft) { document.getElementById(obName).style.left = parseInt(document.getElementById(obName).style.left) - stepLength + "px"; moveid[mid]=setTimeout("MOZmoveOut(\"" + obName + "\"," + mid + "," + stepLength + "," + minLeft + "," + maxLeft + ")",5) } } function IEmoveUp(obName,mid,stepLength,minTop,maxTop) { clearTimeout(moveid[mid]) mid++; if (document.getElementById(obName).style.pixelTop < maxTop) { document.getElementById(obName).style.pixelTop = document.getElementById(obName).style.pixelTop + stepLength moveid[mid]=setTimeout("IEmoveUp(\"" + obName + "\"," + mid + "," + stepLength + "," + minTop + "," + maxTop + ")",1) } } function IEmoveDown(obName,mid,stepLength,minTop,maxTop) { clearTimeout(moveid[mid]) mid++; if (document.getElementById(obName).style.pixelTop > minTop) { document.getElementById(obName).style.pixelTop= document.getElementById(obName).style.pixelTop - stepLength moveid[mid]=setTimeout("IEmoveDown(\"" + obName + "\"," + mid + "," + stepLength + "," + minTop + "," + maxTop + ")",1) } } function MOZmoveUp(obName,mid,stepLength,minTop,maxTop) { clearTimeout(moveid[mid]) mid++; if (parseInt(document.getElementById(obName).style.top) < maxTop) { document.getElementById(obName).style.top = parseInt(document.getElementById(obName).style.top) + stepLength + "px"; moveid[mid]=setTimeout("MOZmoveUp(\"" + obName + "\"," + mid + "," + stepLength + "," + minTop + "," + maxTop + ")",5) } } function MOZmoveDown(obName,mid,stepLength,minTop,maxTop) { clearTimeout(moveid[mid]) mid++; if (parseInt(document.getElementById(obName).style.top) > minTop) { document.getElementById(obName).style.top = parseInt(document.getElementById(obName).style.top) - stepLength + "px"; moveid[mid]=setTimeout("MOZmoveDown(\"" + obName + "\"," + mid + "," + stepLength + "," + minTop + "," + maxTop + ")",5) } } function slide(obName,stepLength,minLeft,maxLeft) { if (document.all) { // if using a IE browser (document.all is set) obLeft = document.getElementById(obName).style.pixelLeft // Getting the closest multiple of the "step" length to be maximum left value closestMaxLeft = (stepLength * parseInt((maxLeft-minLeft) / stepLength)) + minLeft closestMaxLeft = (stepLength * parseInt((maxLeft-minLeft) / stepLength)) + minLeft moveid = new Array() mid = parseInt(Math.random()*100) moveid[mid]=setTimeout("slide()",50000) // gives something for clearTimeout to clear the first time around if (obLeft==minLeft) { IEmoveIn(obName,0,stepLength,minLeft,closestMaxLeft) return } if (obLeft==maxLeft) { IEmoveOut(obName,0,stepLength,minLeft,closestMaxLeft) return } } else { // If using a non-IE browser such as Firefox (like you should be) obLeft = parseInt(document.getElementById(obName).style.left) // Getting the closest multiple of the "step" length to be maximum and minimum left values if (maxLeft == obLeft) { closestMinLeft = maxLeft - (stepLength * parseInt((maxLeft-minLeft) / stepLength)) closestMaxLeft = maxLeft } if (minLeft == obLeft) { closestMaxLeft = (stepLength * parseInt((maxLeft-minLeft) / stepLength)) + minLeft closestMinLeft = minLeft } moveid = new Array() mid = parseInt(Math.random()*100) moveid[mid]=setTimeout("slide()",50000) // gives something for clearTimeout to clear the first time around if (obLeft==closestMinLeft) { MOZmoveIn(obName,mid,stepLength,closestMinLeft,closestMaxLeft) return } if (obLeft==closestMaxLeft) { MOZmoveOut(obName,mid,stepLength,closestMinLeft,closestMaxLeft) return } } } function slideup(obName,stepLength,minTop,maxTop) { if (document.all) { // if using a IE browser (document.all is set) obTop = document.getElementById(obName).style.pixelTop // Getting the closest multiple of the "step" length to be maximum left value closestMaxTop = (stepLength * parseInt((maxTop-minTop) / stepLength)) + minTop closestMaxTop = (stepLength * parseInt((maxTop-minTop) / stepLength)) + minTop moveid = new Array() mid = parseInt(Math.random()*100) moveid[mid]=setTimeout("slideup()",50000) // gives something for clearTimeout to clear the first time around if (obTop==minTop) { IEmoveUp(obName,0,stepLength,minTop,closestMaxTop) return } if (obTop==maxTop) { IEmoveDown(obName,0,stepLength,minTop,closestMaxTop) return } } else { // If using a non-IE browser such as Firefox (like you should be) obTop = parseInt(document.getElementById(obName).style.top) // Getting the closest multiple of the "step" length to be maximum and minimum left values if (maxTop == obTop) { closestMinTop = maxTop - (stepLength * parseInt((maxTop-minTop) / stepLength)) closestMaxTop = maxTop } if (minTop == obTop) { closestMaxTop = (stepLength * parseInt((maxTop-minTop) / stepLength)) + minTop closestMinTop = minTop } moveid = new Array() mid = parseInt(Math.random()*100) moveid[mid]=setTimeout("slideup()",50000) // gives something for clearTimeout to clear the first time around if (obTop==closestMinTop) { MOZmoveUp(obName,mid,stepLength,closestMinTop,closestMaxTop) return } if (obTop==closestMaxTop) { MOZmoveDown(obName,mid,stepLength,closestMinTop,closestMaxTop) return } } }