Hi There,
I'm new tot the board and new to javascript. I modified a "sticky menu" script, which I'm only going to use in IE (because of the lack of
css fixed positioning). The script works when there is no doctype declared. However I need tot declare the doctype because I use moo.fx smoothscrolling. Does anyone understand why the below script doesn't work with
xhtml transitional (or
html 4, and only works in 3.2)?
Hope somebody has some time to look at it:
Thanks in advance!
- Code: Select all
function setVariables(){
y1=-50;ob=1;max=20 // this max sets the distance from the top of the page
if (navigator.appName == "Netscape") {
v=".top=";h=".left=";dS="document.";sD="";
y="window.pageYOffset";x="window.pageXOffset";iW="window.innerWidth";iH="window.innerHeight"
}
else {h=".pixelLeft=";v=".pixelTop=";dS="";sD=".style";
y="document.body.scrollTop";x="document.body.scrollLeft";iW="document.body.clientWidth";iH="document.body.clientHeight"
}
object="object1";
checkLocationA()
}
movex=0,movey=0,xdiff=0,ydiff=0,ystart=0,xstart=0
function checkLocation(){
// innerX=eval(iW)-112 // place to the right
innerX=35 // controls the horizontal from the left side of the page
// innerY=eval(iH)-32 // place at the bottom
innerY=50 // controls the verticle from the top of the page
if (document.layers){innerY-=10;innerX-=10}
yy=eval(y);
xx=eval(x);
ydiff=ystart-yy;
xdiff=xstart-xx;
if ((ydiff<(-0.01))||(ydiff>(0.01))) movey=Math.round(ydiff/10),ystart-=movey
if ((xdiff<(-0.01))||(xdiff>(0.01))) movex=Math.round(xdiff/10),xstart-=movex
N=(document.layers)?1:0
V=(N) ? 4:2
if (V==4){
object="object1"
eval(dS+object+sD+v+(ystart+innerY+10));
eval(dS+object+sD+h+(xstart+innerX+10));
object="object2"
eval(dS+object+sD+v+(ystart+innerY+spread+10));
eval(dS+object+sD+h+(xstart+innerX+10));
//eval(dS + objectX + sD + v + y);
}
else{
object=document.getElementById('object1')
object.style.top=ystart+innerY
object.style.left=xstart+innerX-30
object=document.getElementById('object2')
object.style.top=ystart+innerY+spread+275
object.style.left=xstart+innerX+4
}
setTimeout("checkLocation()",10)}
function checkLocationA(){
ystart=eval(y)+2;
xstart=eval(x)+2;}
spread=40
function scrollOn(){
items=2
if (ob<=items){
objectX="object"+ob;
y1+=10;
N=(document.layers)?1:0
V=(N) ? 4:2
if (V==4){
eval(dS + objectX + sD + v + y1);}
else{
object=document.getElementById(objectX)
object.style.top=y1}
//eval(dS + objectX + sD + v + y);
if (y1<max) xx=setTimeout ("scrollOn()",20)
else y1=-20, max+=spread, ob+=1, xx=setTimeout("scrollOn()",20) // this max sets the spacing
}
if (ob>2){clearTimeout(xx);checkLocation();}
}