Alex: Div per Javascript verstecken in opera

Hi,

ich habe folgenden html code mit javascript:

<a href="#" onClick="expandCollapse('div'); return false;">klick!</a>

<div id=div style="display:none;>
<table class="table-outer">
<tr class="outer-row">
<td class="outer-column">
<table class="table-inner">
    <tr>
        ......
        <td>.....</td>
        ......
    </tr>
</table></td></tr></table>
</div>

function expandCollapse(div) {
  with(document.getElementById(div).style){
    if(display=="none"){
      display="inline";
    }
    else{
      display="none";
    }
  }
}

FF und IE machen das problemlos. Opera allerdings lässt beim verstecken der Div-Box hässliche "Schlieren" zurück.
Die wird man zwar per aus dem Bild und zurück scrollen los, allerdings muss das auch so zu machen sein das diese Schlieren nicht übrig bleiben. Hab ich jedenfalls schon so gesehen.

Kann mir jemand sagen, woran das liegt ?

Gruß,
Alex

  1. Hallo,

    FF und IE machen das problemlos. Opera allerdings lässt beim verstecken der Div-Box hässliche "Schlieren" zurück.

    ?Vielleicht ist Opera mit Krestel einfach zu schnell geworden?

    Falls es nicht ein umfassendes Problem aufgrund irgendwelcher Grafik- oder
    Rendermethoden ist, mag es vielleicht mit per CSS festgelegten Eigenschaften
    zusammenhängen, die du u.U. auch schon per CSS ändern kannst.

    Für einen älteren Konqueror hatte ich mal ein dhtml-Menu mit ähnlichen
    Problemen, dort half es, per JavaScript zusätzlich die visibility aus und
    einzuschalten.

    Und bei Opera hatte ich auch schon mal Rutscheffekte beim Scrollen, 9.5
    Beta scheint auch wieder etwas betroffen zu sein.
    Bei etwas komplexerem Code mit verschachteltem CSS könnte die Hirarchie
    oder Vererbung (u.U. durch einen Bug) uneinheitlich gewesen sein,
    hilfreich ist da vielleicht eine Vereinfachung der Seite.

    Grüsse

    Cyx23

    1. Hi,

      Problemen, dort half es, per JavaScript zusätzlich die visibility aus und
      einzuschalten.

      Display:block anstelle von Display:inline beseitigt die Probleme auch.
      Ich kann mir anhand der Beschreibung zwar nicht so recht vorstellen worin genau der Unterschied zwischen den beiden liegt, aber es funktioniert ja.

      Gruß
      Alex

      1. Hallo Alex,

        Display:block anstelle von Display:inline beseitigt die Probleme auch.
        Ich kann mir anhand der Beschreibung zwar nicht so recht vorstellen worin genau der Unterschied zwischen den beiden liegt, aber es funktioniert ja.

        Fein. Ich vermute mal so etwas: Die Beziehung zur umgehenden Elementen (ggf.
        auch eine Tabellenzelle?) ist bei block vielleicht einfacher oder klarer
        definiert. Oder der Browser "merkt" z.B. früher, dass das betr. Element auch
        eine Breite und Höhe erhalten muß, und fügt es eher oder "aktiver" in die
        Seite ein.

        Grüsse

        Cyx23