Gunnar Bittersmann: Problem beim setzen mehrere Styles

Beitrag lesen

@@DiamondDog:

nuqneH

so ist es richtig:

function style_set(img_id, top_center_height){
  document.getElementById('style_top_center').style.backgroundImage = "url(imgout/"+img_id+"/1_2.png)";

document.getElementById('style_top_center').style.height = top_center_height+"px";
}

  
Von „richtig“ kann da kaum die Rede sein.  
  
Zum einen ist es unsinig, mehrmals das DOM nach demselben Element zu durchsuchen. Einmal reicht:  
  
~~~javascript
function style_set(img_id, top_center_height){  
  var style_top_center = document.getElementById('style_top_center');  
  style_top_center.style.backgroundImage = "url(imgout/"+img_id+"/1_2.png)";  
  
  style_top_center.style.height = top_center_height+"px";  
}

Oder auch gleich document.getElementById('style_top_center').style in einer Variablen speichern.

Eine Abfrage, ob das Element mit der ID 'style_top_center' überhaupt existiert, dürfte sich vor dem Zugriff auf das Elementobjekt auch anbieten.

Zum anderen ist es meist unsinnig, per JavaScript überhaupt Werte von CSS-Eigenschaften zu ändern.

Besser ist es, per JavaScript nur die Zustandsänderung zu markieren, d.h. Klassen zu ändern. Die Styles für die geänderten Klassen stehen – oh welch Wunder – im Stylesheet.

Qapla'

--
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)