tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Quaese
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
855
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Hi,
    Ich habe folgendes Problem:

    Die folgende Hover-Out-Funktion wird gefeuert(console.log() erscheint), aber die darauf folgenden Animationen werden nicht ausgeführt, funktionieren aber grundsätzlich, wenn man den MouseOut sehr langsahm herbeiführt. Wenn man schnell drüber fährt wird der out zwar gefeuert aber nicht fertig ausgeführt. Der Mouse-In funktioniert einwandfrei. Ich habe nicht die geringste Ahnung woran es liegen könnte. Woran könnte es liegen?

    EDIT:

    Es liegt anscheinend an den .stop()
    Ich möchte aber unbedingt verhindern das es "blinkt" wenn man den hover mehrfach triggert. AFAIK geht das aber doch nur mit .stop oder?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    $("#Reference" + ReferenceNumber).hover(function(){
                    
        console.log("In fired");
                    
        $(this).children(".teaser")
            .stop()
            .animate({"height" : "80px"}, 300, "", function(){
                        
                $(this).children("div").children("p.categorys").stop().animate({opacity: 1}, 300);
            
            });
                                
        $(this).children("img")
            .stop()
            .animate({opacity: 1}, 300);
     
        },function(){
                
            console.log("Out fired");
                
            $(this).children(".teaser").children("div").children("p.categorys").stop().animate({opacity: 0}, 300, "", function(){
                
                $(this).parent().parent()
                    .stop()
                    .animate({"height" : "45px" }, 400);
                
                $(this).parent().parent().parent().children("img")
                    .stop()
                    .animate({opacity: .4}, 400);
                        
            });
     
        });
    Geändert von Avorin (03.01.10 um 17:59 Uhr)
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

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

    versuch mal die laufenden Effekte für alle untergeordneten Elemente zu Beginn der Routinen abzubrechen.

    Ausserdem habe ich die this-Referenz "geclosured". Damit ist ein Hangeln durch den Dokumentenbaum unnötig.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    $("#Reference" + ReferenceNumber).hover(
      function(){
        //console.log("In fired");
     
        $("#"+this.id+" *").stop();
     
        var _this = this;
     
        $(this).children(".teaser").animate({"height" : "80px"}, 300, function(){
          $(_this).children(".teaser").children("div").children("p.categorys").animate({opacity: 1}, 300);
        });
     
        $(this).children("img")
          .animate({opacity: 1}, 300);
     
      },
      function(){
        //console.log("Out fired");
     
        var _this = this;
     
        $("#"+this.id+" *").stop();
     
        $(this).children(".teaser").children("div").children("p.categorys").animate({opacity: 0}, 300, function(){
          $(_this).children(".teaser").animate({"height" : "45px"}, 300);
     
          $(_this).children("img")
            .animate({opacity: .4}, 400);
        });
      }
    );

    Ciao
    Quaese
    Avorin bedankt sich. 
    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
    Avorin Avorin ist offline Mitglied Silber
    Registriert seit
    Oct 2009
    Beiträge
    59
    Danke, das Kapseln von this hatte ich auch schon mal, dachte zwischenzeitlich aber das diese Variable vllt überschrieben wird.

    Das Snippet funktioniert schon ziemlich gut, habe aber eben noch ein Plugin gefunden: http://www.2meter3.de/code/hoverFlow/
    welches das noch etwas besser löst(bei deinem Snippet bleibt manchmal eine Reference im hover-State obwohl hover-Out schon getriggert ist, aber nur selten).


    Falschherum, das Plugin hatte den Fehler. ich hab eine falsche Version angeguckt(schäm, sowas passiert wenn man multiplatz debuggen muss)

    Trotzdem nochmal Danke,

    Gruß

    Avorin
    Geändert von Avorin (03.01.10 um 22:29 Uhr)
     
    Bitte bewerte mich wenn ich dir weitergeholfen habe. und markiere dein Beitrag als erledigt wenn das Problem geklärt wurde.

Ähnliche Themen

  1. [IE7] Event onload bei Image-Objekt wird nicht ausgeführt
    Von Benzol im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 14.11.10, 15:24
  2. Antworten: 0
    Letzter Beitrag: 09.04.10, 10:49
  3. Antworten: 7
    Letzter Beitrag: 22.12.09, 18:45
  4. ToolStrip Menu Item Event wird nicht ausgeführt
    Von lusiphur im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 03.09.09, 09:17
  5. OnClip Event wird im Browser nicht ausgeführt
    Von Sword im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 09.09.05, 11:07