WEB.de Effekt: Pop-Up EFfekt bei WEB.de

Hallo,

letztens war ich mal wieder bei WEB.de, ein bisschen Nachrichten lesen, vielleich eMails checken und machte große AUgen, als ich das neue Design gesehen habe.
Ok...das Alte war besser, aber der eine Effekt ist wohl dermaßen bombastisch, dass ich seit Tagen versuche, ihn auch in meine Homepage einzubauen. Die Quelltext-Analyse brachte mich bei dieser Unübersichtlichkeit nicht weiter.

Folgenden Effekt möchte ich erzielen:

www.web.de

Das Kästchen 'Im Blickpunkt' zeigt, solange man nicht mit der Maus darüber gleitet ein großes Bild und zwei kleine Bilder. Gleite ich nun mit meiner Maus auf eines der kleinen Bilder, wird es groß, und offenbart einen ausführlicheren Text. Dies geschieht auch bei dritten Bild.
Ergo ist immer eine Sektion ausführlich und die zwei restlich untergestellt.

Wie zum Teufel programmiere ich solch herrlichen Effekt?

Bitte helft mir, denn ich kann nicht mehr schlafen...:-)

  1. Hallo,

    Das Kästchen 'Im Blickpunkt' zeigt, solange man nicht mit der Maus darüber gleitet ein großes Bild und zwei kleine Bilder. Gleite ich nun mit meiner Maus auf eines der kleinen Bilder, wird es groß, und offenbart einen ausführlicheren Text. Dies geschieht auch bei dritten Bild.

    Ergo ist immer eine Sektion ausführlich und die zwei restlich untergestellt.

    Wie zum Teufel programmiere ich solch herrlichen Effekt?

    Bitte helft mir, denn ich kann nicht mehr schlafen...:-)

    onmouseover="blowup(this);"

    blowup = function(obj) {
            if (!document.getElementById) { return true; }
            var items = obj.parentNode.getElementsByTagName('li');
            for (var i=0; i<items.length; i++) {
                items[i].className = (items[i]==obj) ? 'active' : '';
            }
            return false;
        }

    1. Hi,

      onmouseover="blowup(this);"
      blowup = function(obj) {

      ja, das ist die Primitiv-Variante, die solange gilt, wie noch nicht das gesamte Framework zur Verfügung steht. Der eigentliche Effekt entstammt der - tadaa! - effectLib.js, welche die dynLib.js benötigt, die von der base.js abhängt. Aber tröste Dich: Während Du (Originalposter) die beiden *Lib.js wesentlich verstehen müsstest, werden aus der base.js nur relativ simple Funktiönchen verwendet, sofern ich mich gerade recht erinnere. Naja, und diverse Prototype-Ergänzungen, versteht sich. Ach ja: Die prototype.js könnte ebenfalls relevant sein, die ist aber immerhin dokumentiert.

      Ich gehe natürlich davon aus, dass Du nur abguckst, nicht kopierst. Das wäre schließlich strafbar, gelle?

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Nein, habe nicht vor, den Quellcode einfach zu klauen, vorallem bringt es nichts, da ich es nicht verstehen würde, wenn einfach nur kopiert und geändert.

        Du hast ziemlich nette Worte verwendet und ehrlich: ich verstehe NICHTS!
        Ich sehe, dass Ihr richtige Könner seid und dem entsprechend auch Fachsprache benutzt, der ich noch nicht geläufig bin.

        Aber vielen Dank

        1. Hi,

          Nein, habe nicht vor, den Quellcode einfach zu klauen, vorallem bringt es nichts, da ich es nicht verstehen würde, wenn einfach nur kopiert und geändert.

          das freut mich (ehrlich).

          Du hast ziemlich nette Worte verwendet und ehrlich: ich verstehe NICHTS!

          Das ist nicht weiter schlimm. Der Code ist nicht unkompliziert und, was für das Verständnis sehr abträglich ist, auch nicht unkomplizit. Du musst weite Teile quasi komplett verstehen, um ihn überhaupt verstehen zu können; und die Art der Programmierung ist bei SelfHTML auch kaum beschrieben. Wie ich in meiner anderen Antwort sagte: Beginne kleiner.

          Ich sehe, dass Ihr richtige Könner seid und dem entsprechend auch Fachsprache benutzt, der ich noch nicht geläufig bin.

          Nun ja, ganz offensichtlich schreiben wir auch Codes, die Du nicht verstehst ;-)

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Dann möchte ich hier ersteinmal meine Frage als beendet ansehen und Danke allen Beteiligten, die sich die Mühe gemacht haben, miich zu unterstützen.

      2. Moin Cheatah,

        wo doch gerade wieder die Rede davon ist: Die Burschen haben auf meine Anfrage übrigens nicht reagiert. Ich habe auch kein anderes Ergebnis erwartet. :(

        Du hattest zwar geschrieben, dass du im positiven Fall gern Bescheid wíssen wolltest, aber ich betrachte den Fall jetzt als erledigt. Negativ.

        Schönen Tag noch,
         Martin

        --
        Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
          (Gernot Back)
        1. Hi,

          wo doch gerade wieder die Rede davon ist: Die Burschen haben auf meine Anfrage übrigens nicht reagiert. Ich habe auch kein anderes Ergebnis erwartet. :(

          hm, bei mir ist auch nichts davon angekommen. Das ist zwar nicht verwunderlich; aber ich tippe, es ist dann einfach unter den Tisch gefallen.

          Du hattest zwar geschrieben, dass du im positiven Fall gern Bescheid wíssen wolltest, aber ich betrachte den Fall jetzt als erledigt. Negativ.

          Danke schön. Schade ist es - aber andererseits wurde auf der Homepage die Umfrage zeitweilig abgeschaltet, weil sie zu sehr genutzt wurde und die Server überlastet waren, vielleicht waren sie also froh darüber, dass sie bei manchen nicht funktioniert ;-)

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
    2. 1. Kommt dieser QUelltext in den HEAD oder in den BODY
      2. onmouseover="blowup(this);" blowup(this)?
                                     was?
      3. if (!document.getElementById) { return true; }

      wie bestimme ich die Element-ID und wie sieht das konkret aus?

      4. var items = obj.parentNode.getElementsByTagName('li');

      wie bestimme ich den TagName? Im Head? Oder an dem Ort, wo ich es aufrufen will?

      ('li') kommt nur einmal vor! ist das der Befehl zum Einleiten des Blowup?

      5. ist das alles?

      6. Gibt es kein konkreteres Beispiel, mit eingebundenen Bildern und Text? Außer Web.de!

      7. Vielen Dank für die Mühe

      1. Hi,

        1. Kommt dieser QUelltext in den HEAD oder in den BODY
        2. onmouseover="blowup(this);" blowup(this)?
                                         was?

        [...]

        nimm's mir bitte nicht übel, aber mich deucht, Du stehst noch viel zu sehr am Anfang für dieses. Die von Kalle gepostete Funktion bewirkt _nicht_ den Effekt, den Du zu übernehmen versuchst. Sie ist vergleichsweise billig, und schon bei ihr verstehst Du offenbar keine Code-Zeile ...

        Beginne kleiner.

        1. Gibt es kein konkreteres Beispiel, mit eingebundenen Bildern und Text? Außer Web.de!

        Der Code existiert ausschließlich bei Web.de, und er wird derzeit nur auf der einen Seite eingesetzt. Du wirst sicher anderswo andere und auch ähnliche Effekte finden, aber diesen speziellen nur dort.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Mal sehen...mal sehen...ich glaube, dass ich mit FLASH den selben Effekt hinbekomme, nur nicht so kompliziert...ich lerne DELPHI und habe mir, was HTML anbelangt, alles selbst beigebracht, anhand von konkreten Beispielen...bin kein Theoretiker...und DELPHI ist der absolute Mist, C++ wäre wesentlich besser.

          Danke

          1. Hi,

            Mal sehen...mal sehen...ich glaube, dass ich mit FLASH den selben Effekt hinbekomme, nur nicht so kompliziert...

            ... und mit dem Nachteil, dass ein nicht unerheblicher Teil Deiner Besucher überhaupt nichts mehr sieht. Suchmaschinen beispielsweise. Mit Flash ist es in der Tat einfacher, hat aber eben auch Nachteile.

            ich lerne DELPHI und habe mir, was HTML anbelangt, alles selbst beigebracht, anhand von konkreten Beispielen...bin kein Theoretiker...und DELPHI ist der absolute Mist, C++ wäre wesentlich besser.

            Ich kann weder Delphi noch C++, aber beide sind nicht objektorientiert, oder?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Ich kann weder Delphi noch C++, aber beide sind nicht objektorientiert, oder?

              Delphi ist absolut Objektorientiert und eigentlich nicht weiteres als Turbopasqal, nur dass alles schon vorgegeben wird.

              Ergo nur noch Formeln in die einzellnen Komponenten stopfen...

              1. Hi,

                Delphi ist absolut Objektorientiert und eigentlich nicht weiteres als Turbopasqal, nur dass alles schon vorgegeben wird.

                ah, okay, dann habe ich eine Vorstellung davon. Danke. Hintergrund der Frage war, dass JavaScript ebenfalls objektorientiert ist, und dass es das HTML-Dokument selbst auch in eine Objektstruktur überführt (DOM), die über die Grenzen von HTML weit hinaus geht. Das wird bei Web.de tüchtig genutzt; Du solltest es also wissen, wenn Du den Code verstehen möchtest.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
              2. Hallo,

                Ich kann weder Delphi noch C++, aber beide sind nicht objektorientiert, oder?

                … und C++ ist in manchem objektorientierter, als einem lieb ist (Stichwort Mehrfachvererbung).

                Gruß
                Olaf

                1. eine Frage nur:

                  die base.js
                      homepage.js
                      etc.

                  Wie programmiere ich bitte *.js-Dateien?
                      Doch nicht mit einem herkömmlichen Editor?
                          Vorallem, was steht darin?

                  1. Hi,

                    Wie programmiere ich bitte *.js-Dateien?
                        Doch nicht mit einem herkömmlichen Editor?

                    doch.

                    Vorallem, was steht darin?

                    JavaScript-Code.

                    Cheatah

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                    1. Danke die Herren!

              3. Moin.

                Delphi ist absolut Objektorientiert

                Nein. Man kommt in Delphi auch wunderbar ohne Objektorientierung aus und wenn man auf den ganzen vorgefertigten Quark verzichtet, bekommt man sogar schlanken Code hin, ohne auf grafische Oberflächen in seinen Programmen verzichten zu müssen (Stichwort NonVCL).

                Gruß Frank

                1. Tach.

                  Delphi ist absolut Objektorientiert

                  Nein. Man kommt in Delphi auch wunderbar ohne Objektorientierung aus und wenn man auf den ganzen vorgefertigten Quark verzichtet, bekommt man sogar schlanken Code hin, ohne auf grafische Oberflächen in seinen Programmen verzichten zu müssen (Stichwort NonVCL).

                  Diese zwei Sachen sollte man aber auseinanderhalten! In Delphi objektorientiert zu programmieren bedeutet nicht zwangsweise die Benutzung der VCL. Auf die VCL zu verzichten heißt also nicht, auch auf OOP zu verzichten.

                  Aber du hast recht, daß es in Delphi auch ohne OOP geht. Die Sprache wird häufig auch zu den Hybridsprachen gezählt.

                  --
                  Once is a mistake, twice is jazz.
  2. Ich bin es nochmal!

    Ich habe den Code für Testzwecke ersteinmal assimiliert, alles wird auch angezeigt, jedoch entsteht kein POP-Up-Effekt.

    Warum nicht?

    <head>

    <title>björn daniel weissberg - WORKS</title>

    <script type="text/javascript">
            /* <![CDATA[ */
            function blowup() {}
            function select() {}
            window.addOnload = function() {}
            /* ]]> */
       </script>

    <script type="text/javascript" src="weissberg.eu/base.js"></script>
        <script type="text/javascript" src="weissberg.eu/dynLib.js"></script>
        <script type="text/javascript" src="weissberg.euajaxLib.js"></script>
        <script type="text/javascript" src="weissberg.eu/homepage.js"></script>

    </head>

    <body class="portal-home">
    <!--OK-->

    <ol class="multiBox newsflash">
                <li class="first active firstActive">
                    <div class="moduleContent">

    <div class="modulePart">
                        <ul>

    <li onmouseover="blowup(this);" class="active">
    <div class="teaser">
    <a href="http://www.weissberg.eu/eue.pdf">
    <img src="test.jpg" alt="Test-Bild"/>
    </a>
    <p>Die Fortsetzung "Aus dem Leben der Menschen"
    </p>
    </div>
    <div class="intro">
    <a href="http://www.weissberg.eu/eue.pdf">
    <img src="test.jpg" alt="Test-Bild"/>
    </a>
    <h3>
    <a href="http://www.weissberg.eu/eue.pdf">
    <span>
    Ein Ungewöhnliches Ereignis
    </span>
    </a>
    </h3>
    <p>
    Jahre nach dem Tod Charlies einziger Liebe trifft er auf ihr Ebenbild. Die Konsequenzen sind fatal.
    <a class="more" href="http://www.weissberg.eu/eue.pdf">
    <span>zur Geschichte</span>
    </a>
    </p>
    </ul>
    </div>
    </li>

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

    </ol>

    </div>
                </div>

    </body></html>

    1. Hi,

      Ich habe den Code für Testzwecke ersteinmal assimiliert, alles wird auch angezeigt, jedoch entsteht kein POP-Up-Effekt.
      Warum nicht?

      aus zumindest zwei Gründen. Erstens:

      <script type="text/javascript" src="weissberg.euajaxLib.js"></script>

      Hier fehlt ein Slash. Und zweitens:

      </head>

      Kein CSS. Der BlowupEffect basiert wesentlich auf der Veränderung von Klassen. Wenn diese zu keiner Darstellung genutzt werden, könnte die Darstellung nicht Deinen Wünschen entsprechen.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  3. Hi,

    Wie zum Teufel programmiere ich solch herrlichen Effekt?

    Einfaches Beispiel (sollte auch ohne Kommentare verständlich sein):

      
    <html>  
    <head>  
    <title>News</title>  
    <style type="text/css"><!--  
     .news { margin: 10px; width: 15em; background-color: #EEEEEE; }  
     .intro { display: none; }  
    --></style>  
    <script type="text/javascript" language="JavaScript" src="switchnews.js"></script>  
    </head>  
      
    <body>  
      
    <div class="news">  
     <div class="intro">Kurztext 1</div>  
     <div class="text">Langtext 1</div>  
    </div>  
      
    <div class="news">  
     <div class="intro">Kurztext 2</div>  
     <div class="text">Langtext 2</div>  
    </div>  
      
    <div class="news">  
     <div class="intro">Kurztext 3</div>  
     <div class="text">Langtext 3</div>  
    </div>  
      
    </body>  
    </html>  
    
    

    Und die dazugehörige switchnews.js:

      
     function initNews() {  
      if(document.getElementsByTagName) {  
       divColl=document.getElementsByTagName("div");  
       for(i=0;i<divColl.length;i++) {  
        switch(divColl[i].className) {  
         case "news":  
          if(!initNews["activeNews"]) { initNews["activeNews"]=divColl[i]; }  
          divColl[i].onmouseover=function() { displayNews(this); }  
          break;  
         case "intro":  
          divColl[i].style.display="block";  
          break;  
         case "text":  
          divColl[i].style.display="none";  
          break;  
        }  
       }  
      }  
      displayNews(initNews["activeNews"],true);  
     }  
      
     function displayNews(newsObj,ignoreOld) {  
      if(!ignoreOld) {  
       initNews["activeNews"].getElementsByTagName('div')[1].style.display='none';  
       initNews["activeNews"].getElementsByTagName('div')[0].style.display='block';  
       initNews["activeNews"]=newsObj;  
      }  
      initNews["activeNews"].getElementsByTagName('div')[0].style.display='none';  
      initNews["activeNews"].getElementsByTagName('div')[1].style.display='block';  
     }  
      
     window.onload=initNews;  
    
    

    Bitte helft mir, denn ich kann nicht mehr schlafen...:-)

    Jetzt wieder besser? ;-)

    Jetzt darfst Du aber selbst verfeinern, z.B. daß eine im Intro exisiterende Grafik sich schrittweise aufbaut, etc.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Das ist tatsächlich ein verfrühtes Weihnachtsgeschenk, mit dem ich tatsächlich ohne weitere Erläuterungen arbeiten kann. Herrlich!

      Vielen Dank

    2. Cybaer,

      wie beende ich diesen Thread?
      Einfach "Hat geholfen" schreiben?
      Ich sehe hier keine FUnktion dafür

      1. Hi,

        Das ist tatsächlich ein verfrühtes Weihnachtsgeschenk, mit dem ich tatsächlich ohne weitere Erläuterungen arbeiten kann. Herrlich!

        Paßt ja zum Lebkuchen (und sonstigem Weihnachstsüßkram), den es schon allenthalben zu kaufen gibt. ;->

        wie beende ich diesen Thread?

        Der versandet irgendwann ... ;)

        Einfach "Hat geholfen" schreiben?
        Ich sehe hier keine FUnktion dafür

        Wenn Du registriert wärst, dann hättest Du eine Bewertungsfunktion - ich habe mal einfach selbst mit "hilfreich" gestimmt. >;-)

        Gruß, Cybaer

        PS: Und den Topic noch geändert, damit molily das Beispiel für seine Sammlung findet. ;)

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    3. Hallo,

      <div class="news">
      <div class="intro">Kurztext 1</div>
      <div class="text">Langtext 1</div>
      </div>

      Da eignet sich statt div-Suppe eine ul mit hX-Übershcriften und p-Elementen oder eine dl. Dann ist das Durchlaufen des DOM auch viel performanter möglich, da man nicht die Klassen von unzähligen divs im Dokuments abfragen muss.

      function displayNews(newsObj,ignoreOld) {
        if(!ignoreOld) {
         initNews["activeNews"].getElementsByTagName('div')[1].style.display='none';
         initNews["activeNews"].getElementsByTagName('div')[0].style.display='block';
         initNews["activeNews"]=newsObj;
        }
        initNews["activeNews"].getElementsByTagName('div')[0].style.display='none';
        initNews["activeNews"].getElementsByTagName('div')[1].style.display='block';
      }

      getElementsByTagName muss hier nur einmal ausgeführt werden (wobei man Referenzen zwischen den zu einer News gehörigen Elementen auch schon beim Initialisieren einrichten kann).

      Wieso gerade initNews["activeNews"] schreiben, aber alle anderen Unterobjekte mit der Punkt-Notation ansprechen?

      Mathias

      --
      »No nations, no borders.«
      SELFHTML Weblog
      1. Hi,

        getElementsByTagName muss hier nur einmal ausgeführt werden (wobei man Referenzen zwischen den zu einer News gehörigen Elementen auch schon beim Initialisieren einrichten kann).

        Klar man kann viel verbessern, aber ich denke, der Code ist so kompakt und logisch anzusehen, so daß ihn jeder verstehen kann.

        Wieso gerade initNews["activeNews"] schreiben, aber alle anderen Unterobjekte mit der Punkt-Notation ansprechen?

        Gewohnheit. Ich möchte mir einfach *prinzipiell* die Möglichkeit offen halten, Unterobjekte (eigene wie auch "variable System-Unterobjekte" wie z.B. Forumularelemente) über Variablen ansprechen zu können (jsVar="activeNes"; initNews[jsVar];). Bei (im praktischen Gebrauch eher) "nicht-variablen" ("System-")Unterobjekten bevorzuge ich hingegen die Punkt-Notation.

        Das ermöglicht mir im Normalfall eine schnelle Unterscheidung bzw. bessere Übersicht im Quälcode ... ;)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!