PDA

View Full Version : side scroller dont work in ie7



C.Birch
02-24-2007, 05:43 PM
Hi i have a side scrolling code but im not sure why but it will not work in ie7 it works in ie5,6 and ff 1,2

Here is the code


function lib_bwcheck(){ //Browsercheck (needed)

this.ver=navigator.appVersion

this.agent=navigator.userAgent

this.dom=document.getElementById?1:0

this.opera5=this.agent.indexOf("Opera 5")>-1

this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;

this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;

this.ie4=(document.all && !this.dom && !this.opera5)?1:0;

this.ie=this.ie4||this.ie5||this.ie6

this.mac=this.agent.indexOf("Mac")>-1

this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;

this.ns4=(document.layers && !this.dom)?1:0;

this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)

return this

}

var bw=new lib_bwcheck()





/**************************************************************************

Variables to set.

***************************************************************************/

sLeft = 0 //The left placement of the menu

sTop = 0 //The top placement of the menu

sMenuheight = 50 //The height of the menu

sArrowwidth = 19 //Width of the arrows

sScrollspeed = 6 //Scroll speed: (in milliseconds, change this one and the next variable to change the speed)

sScrollPx = 4 //Pixels to scroll per timeout.

sScrollExtra = 6 //Extra speed to scroll onmousedown (pixels)



/**************************************************************************

Scrolling functions

***************************************************************************/

var tim = 0

var noScroll = true

function mLeft(){

if (!noScroll && oMenu.x<sArrowwidth){

oMenu.moveBy(sScrollPx,0)

tim = setTimeout("mLeft()",sScrollspeed)

}

}

function mRight(){

if (!noScroll && oMenu.x>-(oMenu.scrollWidth-(pageWidth))-sArrowwidth){

oMenu.moveBy(-sScrollPx,0)

tim = setTimeout("mRight()",sScrollspeed)

}

}

function noMove(){

clearTimeout(tim);

noScroll = true;

sScrollPx = sScrollPxOriginal;

}

/**************************************************************************

Object part

***************************************************************************/

function makeObj(obj,nest,menu){

nest = (!nest) ? "":'document.'+nest+'.';

this.elm = bw.ns4?eval(nest+"document.layers." +obj):bw.ie4?document.all[obj]:document.getElementById(obj);

this.css = bw.ns4?this.elm:this.elm.style;

this.scrollWidth = bw.ns4?this.css.document.width:this.elm.offsetWidth;

this.x = bw.ns4?this.css.left:this.elm.offsetLeft;

this.y = bw.ns4?this.css.top:this.elm.offsetTop;

this.moveBy = b_moveBy;

this.moveIt = b_moveIt;

this.clipTo = b_clipTo;

return this;

}

var px = bw.ns4||window.opera?"":"px";

function b_moveIt(x,y){

if (x!=null){this.x=x; this.css.left=this.x+px;}

if (y!=null){this.y=y; this.css.top=this.y+px;}

}

function b_moveBy(x,y){this.x=this.x+x; this.y=this.y+y; this.css.left=this.x+px; this.css.top=this.y+px;}

function b_clipTo(t,r,b,l){

if(bw.ns4){this.css.clip.top=t; this.css.clip.right=r; this.css.clip.bottom=b; this.css.clip.left=l;}

else this.css.clip="rect("+t+"px "+r+"px "+b+"px "+l+"px)";

}

/**************************************************************************

Object part end

***************************************************************************/



/**************************************************************************

Init function. Set the placements of the objects here.

***************************************************************************/

var sScrollPxOriginal = sScrollPx;

function sideInit(){

//Width of the menu, Currently set to the width of the document.

//If you want the menu to be 500px wide for instance, just

//set the pageWidth=500 in stead.

pageWidth = 335



//Making the objects...

oBg = new makeObj('divBg')

oMenu = new makeObj('divMenu','divBg',1)

oArrowRight = new makeObj('divArrowRight','divBg')



//Placing the menucontainer, the layer with links, and the right arrow.

oBg.moveIt(sLeft,sTop) //Main div, holds all the other divs.

oMenu.moveIt(sArrowwidth,null)

oArrowRight.css.width = sArrowwidth;

oArrowRight.moveIt(pageWidth-sArrowwidth,null)



//Setting the width and the visible area of the links.

if (!bw.ns4) oBg.css.overflow = "hidden";

if (bw.ns6) oMenu.css.position = "relative";

oBg.css.width = pageWidth+px;

oBg.clipTo(0,pageWidth,sMenuheight,0)

oBg.css.visibility = "visible";

}



//executing the init function on pageload if the browser is ok.

if (bw.bw) onload = sideInit;

the page can be viewed ay http://beta.lisascottlee.com/events.php i'll be very thankfull if someones albe to help.

tech_support
02-24-2007, 11:16 PM
The page showed up this:


The server is too busy at the moment. Please try again later.

..and maybe you should try editing this:



this.ie=this.ie4||this.ie5||this.ie6

to this:



this.ie=this.ie4||this.ie5||this.ie6 || this.ie7

and add this bellow IE6:




this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;

C.Birch
02-24-2007, 11:35 PM
The page showed up this:



..and maybe you should try editing this:



this.ie=this.ie4||this.ie5||this.ie6

to this:



this.ie=this.ie4||this.ie5||this.ie6 || this.ie7

and add this bellow IE6:




this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;



Thanx, i'll give that a try now my server is back up, it had just been over loaded as the site is a official site and they have just been knocked out a big tv show in the uk on itv so everyone was trying to get on at once

C.Birch
02-24-2007, 11:39 PM
that dont work the error ie7 gives me is 'omenu' is undefined

line 44
char 2