Autor | Zpráva | ||
---|---|---|---|
tajo Profil * |
#1 · Zasláno: 25. 7. 2007, 18:40:04
Dobrý den,
mám problém s jistým skriptem, který nahrazuje klasické scrollování. Funguje všude, až na IE7, které text v daném divu ani nezobrazí. ------- knihovna ---------- function lib_bwcheck(){ // Overenie typu prehliadača 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() var offset var speed = 30 var loop, timer function makeObj(obj,nest){ nest=(!nest) ? "":'document.'+nest+'.' this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:b w.ns4?eval(nest+'document.'+obj):0; this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all [obj].style:bw.ns4?eval(nest+'document.'+obj):0; this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight this.up=goUp;this.down=goDown; this.moveIt=moveIt; this.x=0; this.y=0; this.obj = obj + "Object" eval(this.obj + "=this") return this } var px = bw.ns4||window.opera?"":"px"; function moveIt(x,y){ this.x = x this.y = y this.css.left = this.x+px this.css.top = this.y+px } // Spôsobí pohyb objektu nahor function goDown(move){ if (this.y>-this.scrollHeight+oCont.clipHeight){ this.moveIt(0,this.y-move) if (loop) setTimeout(this.obj+".down("+move+")",speed) } } // A táto funkcia zasa nadol function goUp(move){ if (this.y<0){ this.moveIt(0,this.y-move) if (loop) setTimeout(this.obj+".up("+move+")",speed) } } //Zavolá funkcie potrebné k skrolovaniu. Samozrejme a potom ako je stránka naloadovaná function scroll(speed){ if (scrolltextLoaded){ loop = true; if (speed>0) oScroll.down(speed) else oScroll.up(speed) } } //Zastaví pohyb function noScroll(){ loop = false if (timer) clearTimeout(timer) } //Vytvorí objekt var scrolltextLoaded = false function scrolltextInit(){ //oScroll.y += offset //oScroll.y = offset; oCont = new makeObj('divScrollTextCont') oScroll = new makeObj('divText','divScrollTextCont') oScroll.moveIt(0,0) oCont.css.visibility = "visible" //alert(offset) //oScroll.y = offset scrolltextLoaded = true if(offset < 0) { oScroll.y = offset; oScroll.up(1) } //alert(offset) } //Spustí celý proces ak je stránka naloadovaná a browser je OK if (bw.bw) onload = scrolltextInit var offset = 0 ------- samotný text pro scroll --------- // sipka nahoru <div style="text-align:center; margin: 0px auto;"><a href="#" onmouseover="scroll(-4)" onmouseout="noScroll()" onclick="return false"><img src="/design/podmenu-sipka-nahoru.png" alt="Posunout nahoru" title="Posunout nahoru" /></a></div> <div id="divScrollTextCont" style="height:220px"><div id="divText"> text pro scrollovani </div></div> // sipka dolu <div style="text-align:center; margin: 0px auto;"><a href="#" onmouseover="scroll(4)" onmouseout="noScroll()" onclick="return false"><img src="/design/podmenu-sipka-dolu.png" alt="Posunout dolu" title="Posunout dolu" /></a></div> ------- CSS --------- .clear { clear: both; } #divUp {position:relative; left:20px; top:20px;} #divDown {position:relative; left:20px; top:300px;} #divText {position:relative; left:0px; top:0px;} #divScrollTextCont { position : relative; left : 0; top : 0; height : 220px; overflow : hidden; visibility : hidden; } ------------------------- nevíte prosím v čem by mohl být problém? případně jak ho opravit, aby to zkouslo i IE7? Nebo nemáte nějaké jiné osvědčené a elegantní řešení pro simulaci posuvníků JS? |
||
peta Profil |
#2 · Zasláno: 26. 7. 2007, 20:09:47
tajo
JS koznola v IE hlasi jakou chybu? |
||
Časová prodleva: 17 let
|
0