javascript in Firefox

Chicco80

Grünschnabel
hallo zusammen

ich habe folgende problem:

ich habe eine sliderfunktion programmiert. Im IE und Opera funktioniert sie perfekt, aber im Firefox gar nicht.

es kommt immer die Fehlermeldung: "obj2 has no properties"

Hier mein Code:

function glossar()
{
if(document.getElementById)
{
obj2 = document.getElementById("glossarDiv");
obj2.style.top = -490;
}
}

function glossarslideDown(){
if(document.getElementById){
if(parseInt(obj2.style.top) < 0){
obj2.style.top = parseInt(obj2.style.top) + 50 + "px";
setTimeout("glossarslideDown()",50);
}
}
navislideUp();
sucheslideUp();
}

function glossarslideUp(){
if(document.getElementById){
if(parseInt(obj2.style.top) > -490){
obj2.style.top = parseInt(obj2.style.top) - 50 + "px";
setTimeout("glossarslideUp()",50);
}
}
}


Die Funktion glossar wird beim load der Seite ausgeführt und stellt das div element an die position -470. Aber das Klappt leider beim Firefox nicht...:-(

Kann mir da jemand weiterhelfen

Danke im voraus!

mfg

Chicco
 
Zuletzt bearbeitet:
Muss am CSS liegen. Vielleicht hast du "position" nicht auf "abolute". Dashier funktioniert auf jeden fall einwandfrei:
HTML:
<script type="text/javascript"><!--
 function glossar() {
 	if(document.getElementById) {
 		obj2 = document.getElementById("glossarDiv");
 		obj2.style.top = -490;
 	}
 }
 //--></script>
 
 <div id="glossarDiv" style="position:absolute; top:10px">0</div><br />
 <input type="button" value="Go!" onclick="glossar()" />
 
also mein css sieht folgender massen aus:

#navigation
{
position: relative;
top: 0px;
left: 0px;
z-index: 5;
scrollbar-base-color: #203b54;
scrollbar-3d-light-color: #a0bbd4;
scrollbar-arrow-color: #a0bbd4;
scrollbar-darkshadow-color: #203b54;
scrollbar-face-color: #203b54;
scrollbar-highlight-color: #809bb4;
scrollbar-shadow-color: #809bb4;
scrollbar-track-color: #203b54;
}

#glossarDiv
{
overflow: hidden;
font-size: 10px;
color: #FFFFFF;
position: relative;
width: 300px;
height: 400px;
left: -298px;
margin-top: -400px;
z-index: 5;
text-align: left;
background-color: #203b54;
filter: alpha(opacity=95);
padding-left: 4px;
}


der dazugehörende html code:

<div id="navigation">
<div id="glossarDiv">
<div class="navigation_title">Glossar &nbsp;
<div class="navigation_close"><a href="javascript:glossarslideUp()"> X </a></div>
</div>

<div class="glossar_box">
<div class="glossar_title">Vorhandene Einträge</div>
<div id="glossar"></div>
<div class="begriff_title">Ausgewählter Begriff</div>
<div id="begriff"></div>

</div>
</div>
</div>

was meinst du dazu? Ich bin mir bewusst, dass es ein paar IE spezifische sachen gibt, aber das funktioniert ja im opera trotzdem perfekt...

danke
 
Also ich denke mal, du musst position:absolute verwenden um das div korrekt zu positionieren, da es sich bei style.top auch um eine absolute positionsangabe handelt.
 
Hallo,

m.E. fehlt in der Funktion "glossar()" bei der Zuweisung des TOP-Wertes die Maßeinheit.
Ohne dass ich es ausprobiert hätte, aber versuch es doch mal so:
Code:
 function glossar()
   {
   	if(document.getElementById)
   	{
    obj2 = document.getElementById("glossarDiv");
    obj2.style.top = "-490px";
   	}
   }
 
Solange er keine Documentyps benutzt kann es daran nicht liegen, da der Code-Schnipsel von mir oben ja funktioniert (auch in Mozialla / Firefox)...
Tortzdem sollte man natürlich Prinzipiell die Einheit mit angeben.
 
Zuletzt bearbeitet:
Ja das ist schon möglich, dass der IE und auch Opera das im Quirksmode akzeptiert und die Geko-Browser aber nicht. Richtig ist jedoch die Angabe dieser Werte mit Maßeinheit und als String. In den Funktionen "glossarslideUp" und "glossarslideDown" wird es ja auch als String mit Maßeinheit zugewiesen.
 

Neue Beiträge

Zurück