tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
4270
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Hallo Forum,

    ich möchte gerne statt "onmouseover" das bild zu ersetzen, das bild mit einen fade effekt ersetzen.
    daher habe ich das hier suprbiert.. nicht lachen bin grad in den Anfängen von jQuery

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     
    $(document).ready(function(){
    $("#home").mouseout(function(event) {
            $("#home").attr({
                src: "images/buttons/home.jpg"
            }).("#home").fadeIn(800 );
    });
    $("#home").mouseover(function(event) {
        $("#home").attr({
            src: "images/buttons/home_hover.jpg"
        }).("#home").fadeIn(800 );
        });
    });

    er tauscht zwar das bild aus.. aber ohne hover woran kann das liegen?
     

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    dein Bild besitzt keine Transparenz. Deshalb wird die Quelle nur gewechselt, das Faden hat keinen sichtbaren Einfluss.

    Du könntest zunächst die Transparenz auf 100% setzen - durch fadeOut(0).

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    $(document).ready(function(){
      $("#home").mouseout(function(event) {
        $("#home").[B]fadeOut(0).[/B]attr({
          src: "http://www.tutorials.de/forum/images/buttons/home.jpg"
        }).fadeIn(800 );
      });
      $("#home").mouseover(function(event) {
        $("#home").[B]fadeOut(0).[/B]attr({
          src: "http://www.tutorials.de/forum/images/buttons/home_hover.jpg"
        }).fadeIn(800 );
      });
    });

    Zudem ist eine weitere Angabe von ("#home") unnötig - habe ich entfernt.

    Ciao
    Quaese
    Geändert von Quaese (30.04.10 um 20:03 Uhr) Grund: fade durch fadeOut ersetzt
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    funktioniet leider auch nicht..

    denn die Fehlerkonsole gibt an:

    Fehler: $("#home").fade is not a function
    Quelldatei: http://www.vrc-racing.com/js/naviMouseOver.js
    Zeile: 8

    im netz gibt es nur beispiele mit klassen und einzelen divs die ein bzw. ausgeblendet werden..
    Geht das vieleicht garnicht meine überlegung? #home it die id von img tag
     

  4. #4
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    $(document).ready(function() {
                $("#home").hover(
                    function() {
                        $(this).fadeOut(function() {
                            $(this).attr({"src":"neu.png"}).fadeIn();
                        });
                    },
                    function() {
                        $(this).fadeOut(function() {
                            $(this).attr({"src":"alt.png"}).fadeIn();
                        });
                    });
            });

    Erstmal binde ich das hover-Event (nimmt zwei Funktionen für Ein- und Ausfahrt der Maus). Im Event wird das Element ausgefadet. Die fade-Animation bekommt eine Funktion übergeben, welche am Ende der Animation getriggert wird (wenn das Bild unsichtbar ist). In dieser Funktion wird das Bild ausgetauscht und wieder eingefadet.
    Geändert von CPoly (30.04.10 um 18:41 Uhr)
    mita1982 bedankt sich. 

  5. #5
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Erstmal Danke!

    muss wohl noch ein wenig jQuery studieren...

    Gibt es die möglichkeit.. dass es gleizeit aus und eingefadet werden kann? also geht man mit der Maus rüber ändert sich der "button"... Jetzt wird ja das alte ausgefadet und das neue eingefadet...

    hier mal der link damit ihr versteht was ich meine..

    http://www.vrc-racing.com
     

  6. #6
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Hab ich das so zu verstehen, dass das alte und neue Bild praktisch ineinander übergehen und teilweise gleichzeitig zu sehen sind?
    Zeig uns mal etwas von deinem HTML, denn so kann ich dir nicht weiter helfen. Denn um beides zu sehen, reicht ja ein einziges img-Tag nicht aus, sondern du musst zwei überlagernde Elemente haben.
    mita1982 bedankt sich. 

  7. #7
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Ja genau das meine ich.. schade dass es so "einfach nicht geht.. dann mache cih das wphl weiterhin mit onmouseover..onmouseout...

    weil das ganze ist ja eine liste mit img-tags und per css so angepasst dass da kein rand ist etc. dass ist mir dann wohl zu schwer mit jeweils zwei tags zu arbeiten.. Aber es geht doch beim click event oder nicht? also ich klcike auf einen button.. und dann fadet ein bild über ein anderes.. da dachte ich es ginge auch mit hover bzw. mouseover
     

  8. #8
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von mita1982 Beitrag anzeigen
    dann mache cih das wphl weiterhin mit onmouseover..onmouseout...
    Ohne fade oder wie meinst du das? Weil meine hover()-Funktion ist ja nichts anderes als ein Shorthand für onmouseover und onmouseout.

    Wie gesagt, wenn du uns das HTML-Markup deines Menüs zeigst, finden wir bestimmt eine Lösung.
     

  9. #9
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Ok hier...
    habe es nur an home bzw. index ausprobieren wollen..
    HTML-Code:
    <div id="divNavi">
        <ul id="navi">
          <li><a href="index.php"><img src="images/buttons/home.jpg"      alt="home"  id="home" /></a></li>
          <li><a href="bikes.php"><img src="images/buttons/bikes.jpg"   onmouseover="document.getElementById('bikes').src='images/buttons/bikes_hover.jpg';" onmouseout="document.getElementById('bikes').src='images/buttons/bikes.jpg';" alt="bikes"  id="bikes" /></a></li>
    
          <li><a href="videos.php"><img src="images/buttons/videos.jpg"   onmouseover="document.getElementById('videos').src='images/buttons/videos_hover.jpg';" onmouseout="document.getElementById('videos').src='images/buttons/videos.jpg';" alt="videos" id="videos" /></a></li>
          <li><a href="contact.php"><img src="images/buttons/kontakt.jpg"   onmouseover="document.getElementById('kontakt').src='images/buttons/kontakt_hover.jpg';" onmouseout="document.getElementById('kontakt').src='images/buttons/kontakt.jpg';"  alt="kontakt" id="kontakt" /></a></li>
        </ul>
      </div>
     

  10. #10
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Erstmal ein Tipp: Wenn du Javascript direkt im Attribut stehen hast und das gleiche Element ansprechen willst, braucht du kein "document.getElementById()" sondern du kannst "this" benutzen.

    Jetzt die Lösung deines Problems Verbal formuliert. Wenn du dann noch Probleme mit der Umsetzung hast, meld dich nochmal.
    1.Verpasse deinen Links als Hintergrundbild das Bild, welches im normalen Zustand angezeigt werden soll (z.B. home.jpg)
    2.Füge die img-Tags ein, aber mit mit style="display:none" und home_hover.jpg
    3.Beim onmouseover des Links fadest du das img-Tag ein
    4.Beim onmouseout des img-Tags fadest du es aus.

    Das ganze lässt sich auch beliebig anders gestalten (span-Tag anstelle des img-Tag und dafür beim span ein Hintergrundbild. Wenn du dann noch home.jpg und home_hover.jpg in eine einzige Datei packst und mit background-positition arbeitest, wäre das optimal)
    Auch ließe es sich genau anders herum machen, also dem Link das hover-Bild verpassen.

    Probier einfach mal bisschen rum.
    mita1982 bedankt sich. 

  11. #11
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    also:

    füge ich dem li oder a tag den hintergrund home.jpg?

    ansosnten habe ich es verstanden..
     

  12. #12
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Sollte beides gehen, aber ich meinte das a-Tag. Das muss dann natürlich display:block und eine Höhe und Breite haben (ich kenne dein css ja nicht, aber das wird es wohl auch jetzt schon haben).
     

  13. #13
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Zitat Zitat von CPoly Beitrag anzeigen
    Sollte beides gehen, aber ich meinte das a-Tag. Das muss dann natürlich display:block und eine Höhe und Breite haben (ich kenne dein css ja nicht, aber das wird es wohl auch jetzt schon haben).
    ok ich probier das die Tage aus und melde mich hier mit dem Ergebnis wieder DANKE erstmal...
     

  14. #14
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Zitat Zitat von CPoly Beitrag anzeigen
    Das ganze lässt sich auch beliebig anders gestalten (span-Tag anstelle des img-Tag und dafür beim span ein Hintergrundbild. Wenn du dann noch home.jpg und home_hover.jpg in eine einzige Datei packst und mit background-positition arbeitest, wäre das optimal)
    Warum ist ausgerechnet so optimal

    Kannst Du mal diese Technik genauer erläutern.. habe dasGefühl, dass selbst die Offizielle Seite von jQuery das so macht.. ich verscuhe ein wenig diese Seite zu analysieren um so professionell wie moglich das style sheat nächstes mal zu gestallen. und da ist mir das aufgefallen.. dass der hintergrund der Navi 82px hoch ist, aber die Navi an sich nur 41px...

    darüberhinuas verstehe ich den status "scroll" bei einem backgroundbild nicht...
     

  15. #15
    Maik Tutorials.de Gastzugang
    Hi,

    das Stichwort lautet "CSS Sprites". Weitere Artikel kannst du den Suchergebnissen von google entnehmen.

    Der Vorteil dieser Technik liegt ganz klar auf der Hand: Der Browser hat nur eine Grafikdatei zu laden, die er mittels der background-position-Eigenschaft im Anzeigebereich der einzelnen Elemente ausrichtet, und der Server-Traffic so drastisch heruntergeschraubt wird.

    Daher fällt die Grafikdatei auch größer (höher, breiter) aus, wie das Element selbst, das sie als Hintergrund ausschmückt.

    In meinem CSS-Tutorial CSS-Rollover und CSS-Rollover - Teil 2 stelle ich diese Methode in den Abschnitten "CSS-Rollover mit background-image" im kleinen Maßstab auf die einzelnen Menüpunkte bezogen vor. In der produktiven Praxis würden alle Hintergrundzustände der einzelnen Menüpunkte in eine einzige Grafikdatei fließen.

    Ein weiterer Pluspunkt gegenüber dem Tauschen zweier oder dreier Grafikdateien, die "Hover"-Grafiken flackern beim allerersten Aufruf nicht mehr kurz auf, wenn der Browser sie in diesem Moment erst in seinen Cache lädt.

    Hier im Forum nutzen wir die Technik auch an diversen Stellen:

    ... um mal eine kleine Auswahl an Anwendungsbeispielen zu nennen, die sich nicht ausschließlich auf Navigationsmenüs beschränken.

    mfg Maik
     

Ähnliche Themen

  1. Slideshow mit Fade-Effekt
    Von flushbomb im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 22.02.12, 14:06
  2. jQuery Mega Menu - fade in Richtung ändern ****
    Von celine70 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 13.10.10, 20:11
  3. Gruppenfoto Mit Fade Effekt
    Von DooMoOo im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 09.04.06, 13:47
  4. Fade-Effekt!
    Von EchseKiuta im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 17.09.04, 10:29
  5. fade effekt
    Von vsitor im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 25.04.02, 20:27

Stichworte