mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 27.04.2024 06:21 Benutzername: Passwort: Auto-Login

Thema: JS setAttribute 'style' - geht das? vom 20.06.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> JS setAttribute 'style' - geht das?
Autor Nachricht
willshedo
Threadersteller

Dabei seit: 21.12.2005
Ort: Waldshut
Alter: 51
Geschlecht: -
Verfasst Sa 20.06.2009 10:10
Titel

JS setAttribute 'style' - geht das?

Antworten mit Zitat Zum Seitenanfang

Hi alle,

Folgende Aufgabe:
Das div#eins soll beim Laden der Seite per JS auf display:none gesetzt werden.
Irgendwie bin ich grad betriebsblind, warum es nicht geht (falsch formuliert?):

Code:
<head>
<script type="text/javascript">
function setblock(){
document.getElementById('eins').setAttribute('style','display:none')
}
</script>
</head>
<body onload="setblock()">
.
.
.


Macht man das überhaupt so?
Achja, edit: ein auslösendes Event gibts außer onload nicht, also nix onmouseup und so.

Grüße,
Chris


Zuletzt bearbeitet von willshedo am Sa 20.06.2009 10:12, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Sa 20.06.2009 10:22
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
window.onload = function() {
document.getElementById('eins').style.display = 'none';
}
  View user's profile Private Nachricht senden
Anzeige
Anzeige
willshedo
Threadersteller

Dabei seit: 21.12.2005
Ort: Waldshut
Alter: 51
Geschlecht: -
Verfasst Sa 20.06.2009 10:48
Titel

Antworten mit Zitat Zum Seitenanfang

Jawoll, das funktioniert, danke.
Aber irgendwie wars wohl doch ein Denkfehler, das zu brauchen; was ich damit erreichen wollte, klappt nämlich erst nicht.

Ich habe drei Bilder, die per JS-Script wechseln, wenn man die Links 1,2 oder 3 anklickt. Soweit, sogut. Dann ein Schalter 'vor' und einer 'Zurück', der ebenfalls per JS die Bilder tauscht - klappt aber erst, nachdem man einmal einen der 1,2,3-Links geklickt hat.
Ich dachte, es reicht, wenn man da beim Onload per JS die Style-Eigenschaft einmal setzt - scheint aber nicht so zu sein.

Wer hilft mir da mal auf die Sprünge?
Beispiel hier: http://s175056319.online.de/test/2.htm

Quellcode sieht so aus:
Code:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">

function vor() {
if ((document.getElementById('eins').style.display == 'block')
      && (document.getElementById('zwei').style.display == 'none')
      && (document.getElementById('drei').style.display == 'none'))
   {
      document.getElementById('eins').style.display = 'none';
      document.getElementById('zwei').style.display = 'block';
      document.getElementById('drei').style.display = 'none';
   }
else if ((document.getElementById('eins').style.display == 'none')
      && (document.getElementById('zwei').style.display == 'block')
      && (document.getElementById('drei').style.display == 'none'))
   {
      document.getElementById('eins').style.display = 'none';
      document.getElementById('zwei').style.display = 'none';
      document.getElementById('drei').style.display = 'block';
   }
else if ((document.getElementById('eins').style.display == 'none')
      && (document.getElementById('zwei').style.display == 'none')
      && (document.getElementById('drei').style.display == 'block'))
   {
      document.getElementById('eins').style.display = 'block';
      document.getElementById('zwei').style.display = 'none';
      document.getElementById('drei').style.display = 'none';
   }
   else document.getElementById('eins').style.display == 'block'
}

function zurck() {
if ((document.getElementById('eins').style.display == 'block')
      && (document.getElementById('zwei').style.display == 'none')
      && (document.getElementById('drei').style.display == 'none'))
   {
      document.getElementById('eins').style.display = 'none';
      document.getElementById('zwei').style.display = 'none';
      document.getElementById('drei').style.display = 'block';
   }
else if ((document.getElementById('eins').style.display == 'none')
      && (document.getElementById('zwei').style.display == 'block')
      && (document.getElementById('drei').style.display == 'none'))
   {
      document.getElementById('eins').style.display = 'block';
      document.getElementById('zwei').style.display = 'none';
      document.getElementById('drei').style.display = 'none';
   }
else if ((document.getElementById('eins').style.display == 'none')
      && (document.getElementById('zwei').style.display == 'none')
      && (document.getElementById('drei').style.display == 'block'))
   {
      document.getElementById('eins').style.display = 'none';
      document.getElementById('zwei').style.display = 'block';
      document.getElementById('drei').style.display = 'none';
   }
}


function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }}

function swap(objId,x,stl,wrt) {
  var obj = null;
  with (document){
   if (getElementById)
  obj = getElementById(objId); }
  if (obj){
 
    eval("obj.style."+stl+"='"+wrt+"'");
  }
}

window.onload = function() {
document.getElementById('eins').style.display = 'block';
}

</script>
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
#eins { }
#zwei { display:none; }
#drei { display:none; }
#wahl { cursor:pointer; }
#wahl a.vor { padding-right:20px; }
#wahl a.zurck { padding-left:20px; }
-->
</style>
</head>
<body>
<div  id="eins"> <img src="goalsports1.png" width="260" height="100" alt="" /> </div>
<div  id="zwei"> <img src="goalsports2.png" width="260" height="100" alt="" /> </div>
<div  id="drei"> <img src="goalsports3.png" width="260" height="100" alt="" /> </div>
<div id="wahl"><a class='zurck' href="javascript:zurck();">Zurück</a> <a  onfocus="blur()" target="_self"
            onmouseup="swap('eins','','display','block','DIV');
 swap('zwei','','display','none','DIV');
 swap('drei','','display','none','DIV'); ">1</a> <a class='border' onfocus="blur()" target="_self"
            onmouseup="swap('eins','','display','none','DIV');
 swap('zwei','','display','block','DIV');
 swap('drei','','display','none','DIV'); "> 2</a> <a class='border' onfocus="blur()" target="_self"
            onmouseup="swap('eins','','display','none','DIV');
 swap('zwei','','display','none','DIV');
 swap('drei','','display','block','DIV'); ">3</a> <a class='vor' href="javascript:vor();">Vor</a> </div>
</body>
</html>


Grüße,
Chris
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Sa 20.06.2009 11:32
Titel

Antworten mit Zitat Zum Seitenanfang

hier. ich hatte langweile Lächel

wenn kein js aktiv ist, werden alle bilder angezeigt als fallback. die navi wird nur per js generiert und erweitert sich automatisch, wenn du mehr bilder hinzufügst (siehe kommentar).

testen kann man das ganze hier


Code:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">

window.onload = function() {
   parseImages();
}

/*
   variabe currentimage initialisieren.
   in dieser globalen variable wird immer die
   id des derzeit angezeigten bildes abgelegt
*/
var currentImage = 0;

function parseImages() {
   
   // array mit allen bildern die ausgeblendet werden sollen erstellen
   imageArray = document.getElementById('images').getElementsByTagName('img');
   /* variable imageLinks initialisieren */
   var imageLinks = "";
   
   // alle bilder bis auf das erste ausblenden
   for(var i=0;i<imageArray.length;i++) {
      if(i>0){
         /* alle bilder außer dem ersten ausblenden */
         imageArray[i].style.display = "none";
      }
      /*
         für jedes bild einen link erzeugen.
         diese werden in der variable imagelinks gespeichert
         und erst später ausgegeben
      */
      imageLinks += "<a href=\"javascript:flipImage(" + i + ")\" id=\"" + i + "\">" + i + "</a>";
   }
   
   // navigation erzeugen - die braucht ja keiner,
   // wenn er kein javascript hat ;) - demnach wird sie auch nur dann angezeigt
   naviContainer = document.createElement('div');
   naviContainer.id = "wahl";
   naviContainer.innerHTML  = "";
   naviContainer.innerHTML += " <a href=\"javascript:flipImage(currentImage-1)\">Zur&uuml;   ck</a> "
   naviContainer.innerHTML += imageLinks;
   naviContainer.innerHTML += " <a href=\"javascript:flipImage(currentImage+1)\">Vor</a> "
   document.body.appendChild(naviContainer);
   
}

function flipImage(num) {
   // wenn beim letzten bild auf weiter gedrückt wird, wieder das erste anzeigen
   if(num>imageArray.length-1) {
      num = 0;
   }
   // wenn beim letzten ersten bild auf zurück gedrückt wird, das letzte anzeigen
   if(num<0) {
      num = imageArray.length-1;
   }
   // alle bilder bis auf das anzuzeigende ausblenden.
   for(var i=0;i<imageArray.length;i++) {
      if(i!=num){
         imageArray[i].style.display = "none";
      } else {
         imageArray[i].style.display = "block";
      }
   }
   
   // variable für derzeit angezeigtes bild neu setzen
   currentImage = num;
}


</script>
<title>Unbenanntes Dokument</title>
</head>
<body>
   <div id="images">
      <img id="eins" src="goalsports1.png" width="260" height="100" alt="" />
      <img id="zwei" src="goalsports2.png" width="260" height="100" alt="" />
      <img id="zwei" src="goalsports3.png" width="260" height="100" alt="" />   
   </div>
</html>


Zuletzt bearbeitet von sahnemuh am Sa 20.06.2009 11:45, insgesamt 4-mal bearbeitet
  View user's profile Private Nachricht senden
willshedo
Threadersteller

Dabei seit: 21.12.2005
Ort: Waldshut
Alter: 51
Geschlecht: -
Verfasst Sa 20.06.2009 12:19
Titel

Antworten mit Zitat Zum Seitenanfang

Das ist ja fein,daß du Langeweile hast, * Applaus, Applaus * dein Beispiel ist nämlich genau das, was ich suchte. Sehr schön, freut mich. Mir fehlt da irgendwie die Übung in JS...

Grüße, Chris
  View user's profile Private Nachricht senden
 
Ähnliche Themen HTML element Style ohne Parentelement Style
Tipps für verwaschenen Style bzw. Splash Style
ul / li style
Adressbuch im OWA Style
Welcher Style
Inline Style und ...?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.