Autor Zpráva
tajo
Profil *
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
tajo
JS koznola v IE hlasi jakou chybu?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: