-
Hallo zusammen,
ich habe eine kleine Funktion, in dernach einem hover einen Container verschwinden lässt, aber mit Animation.PHP-Code:hide(1000);
Jetzt habe ichausprobiert, allerdings spielt das nach 5 mouseovers verrückt und verschwindet garnicht mehr oder sofort.PHP-Code:$(this).animate({opacity:1},1000
Wie kann ich das verläßlich regeln?
Grüße & Danke
Michael Meyer
-
Moin,
du müsstest vor der Zuweisung der neuen Animation die aktuelle laufenden Animationen(sofern vorhanden) stoppen.
Dies geht mit..... stop()
Geändert von Sven Mintel (24.08.10 um 14:26 Uhr)
-
Cool, danke. Das geht.
Leider habe ich nun ein Problem mit IE 8.
-
-
Es wird garnichts mehr angezeigt, d.h. das DIV welches verschwinden soll, kommt erst garnicht.
Geändert von querytail (24.08.10 um 14:46 Uhr)
-
Poste mal bitte mehr von deinem Code, von
...war ja bisher keine Rede.kommt erst garnicht
Wenn du dieses Container auch einblendest, wäre dies natürlich auch eine Animation, die von stop() betroffen wäre.
-
PHP-Code:
$("ul.nav") .mouseover(function() {
$(this).parent().find("ul.nav2").show();
$(this).parent().hover(function() {
}, function(){
$(this).parent().find("ul.nav2").hide();
});
});
-
Mmmh, ja

Das Problem mit dem IE kann ich damit nicht reproduzieren, ohne das Markup dazu zu Sehen.
Was auf jeden Fall ein Problem ist:
Du weist ja das Hover-Verhalten bei jedem mouseover von ul.nav erneut zu...bei jquery heisst das, du überschreibst es nicht, sondern du fügst es hinzu...bei jedem Hovern wird dann das Ganze so oft versucht zu Starten, wie bereits mouseover in ul.nav gefeuert hat.
Umgehen kannst du dies per one()
Da dies aber nicht unbedingt das Problem im IE8 erklärt, hab ich mal nen Beispiel fertiggemacht(funktioniert auch im IE8)
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="author" content="doktormolle" /> <meta name="date" content="2010-08-24" /> <title>Test</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script id="testscript" type="text/javascript"> <!-- //nur für css-zeugs $('html').addClass('scripted'); $(document).ready(function(){ $('ul.nav') //Event nur 1x beachten .one('mouseenter', function() { //Transparenz und visibility ändern, spart das ganz opacity-Zeugs im CSS $(this).parent().find("ul.nav > li ul").css({opacity:0,visibility:'visible'}) //Eventüberwachung $(this).parent().find("ul.nav > li").hover(function() { $(this).find("ul.nav2").stop().fadeTo('fast',1); }, function() { $(this).find("ul.nav2").stop().fadeTo(1000,0); } ); }); }); //--> </script> <style type="text/css"> <!-- ul,li{list-style-type:none;margin:0;padding:0;} html.scripted ul.nav2{visibility:hidden;border:1px dotted #717171} ul.nav{background:#919191;padding:4px;} ul.nav li ul{background:#a1a1a1;} ul.nav li span{background:#c1c1c1;display:block;font-weight:bold;} --> </style> </head> <body> <ul style="width:200px;"> <li> <ul class="nav"> <li><span>#1</span> <ul class="nav2"> <li>#1.1</li> <li>#1.2</li> <li>#1.3</li> </ul> </li> <li><span>#2</span> <ul class="nav2"> <li>#2.1</li> <li>#2.2</li> <li>#2.3</li> </ul> </li> <li><span>#3</span> <ul class="nav2"> <li>#3.1</li> <li>#3.2</li> <li>#3.3</li> </ul> </li> </ul> </li> </ul> </body> </html>
-
Hallo und danke,
leider funktioniert das nicht. Gibt es keine Möglichkeit, das funktionierende hide ohne Animation 1 Sekunde zu verzögern?
Grüße & Danke
Michael Meyer
-
Achja? Was denn?
Da mußt du hier weit und breit der einzige User sein, denn Svens Codebeispiel aus Post #8 funktioniert bei mir erwartungsgemäß, und wie von ihm angekündigt, anstandslos im IE8.
Glaubst du allen ernstes, dass er hier den Hilfesuchenden vollmundig funktionstüchtigen Code unterjubelt, der sich anschliessend als untauglich erweist?
Geändert von spicelab (28.08.10 um 13:37 Uhr)
-
Hallo,
das Script funktioniert als solches, aber ich benötige, wie geschrieben, eines ohne Animation, d.h. die Ausführung von hide soll "einfach" verzögert werden.
Grüße
Michael Meyer
-
Dann nehme die Animation heraus und füge vor dem Ausblenden eine Verzögerung(delay()) ein:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
$(document).ready(function(){ $('ul.nav') //Event nur 1x beachten .one('mouseenter', function() { //Transparenz und visibility ändern, spart das ganz opacity-Zeugs im CSS $(this).parent().find("ul.nav > li ul").css({opacity:0,visibility:'visible'}) //Eventüberwachung $(this).parent().find("ul.nav > li").hover(function() { $(this).find("ul.nav2").stop().fadeTo(0,1); }, function() { $(this).find("ul.nav2").stop().delay(2000).fadeTo(0,0); } ); }); });
-
-
@Sven: Dankeschön. Ich habe eine nun eine Lösung mit settimeout gefunden. Das frisst merkwürdigerweise auch der IE. Liegt vielleicht auch daran, dass ich ein *****er bin.
@spice...: Welchen Sinn haben Deine Beiträge? Sorry, ich kann zumindest bei diesem Thema keinen erkennen.
-
Wenn dir zwischenzeitlich der Sinn meiner beiden gestrigen Beiträge irgendwo unterwegs abhanden gekommen ist, und du die Spur zu ihm hier in diesem Thema nicht mehr aufnehmen kannst, sind wohl ein paar zusätzliche Trainingseinheiten angesagt, um deinen Gehirnmuskel gescheit aufzubauen, und an eine höhere Leistungsgrenze zu führen.
Geändert von spicelab (29.08.10 um 11:57 Uhr) Grund: Tippex
Ähnliche Themen
-
Div nach X Sekunden ausblenden
Von proloser im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 06.01.10, 18:32 -
sekunden nach Minuten und sekunden
Von mgraf im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 23.09.08, 16:47 -
abruch nach 30 sekunden
Von macropode im Forum PHPAntworten: 1Letzter Beitrag: 22.08.08, 13:31 -
Update nach x Sekunden
Von Acriss im Forum PHPAntworten: 6Letzter Beitrag: 21.09.07, 23:37 -
Download nach Sekunden
Von Koose im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 10.07.02, 17:01



1Danke

Zitieren

Login




