2010-08-03 14 views
39
Arbeits

Kann mir bitte jemand sagen, was ich falsch mache:jquery FadeIn nicht

Stil:

.warning{border: 1px solid #F0AAAA; background:#FFBABA; color: #C90000;} 

Markup:

<p class="warning">A successful authorization already exists. 
        Further authorizations are not allowed at this time.</p> 

Skript:

$().ready(function() { 
    alert($(".warning").html());  // WORKS 
    $(".warning").fadeIn(4000);  // DOESN'T WORK 
}); 
+0

Was erwarten Sie fadeIn() zu tun? Wenn .warning nicht sichtbar ist, macht fadeIn es sichtbar, aber gemäß Ihrem CSS gibt es keinen Grund zu erwarten, dass es ausgeblendet wird. –

+0

Mein Szenario war, dass das Warn-Div trotzdem angezeigt würde, wenn die Seite geladen wurde. Ich wollte es nur langsam einblenden, sobald der Benutzer auf dieser Seite gelandet ist. Also wollte ich keine Anzeige setzen: keine im Stylesheet. Aber wie Nick unten vorgeschlagen hat .hide(). FadeIn() war genau das, was ich brauchte, damit es in diesem Szenario funktioniert. –

Antwort

73

Solange das Element nicht ausgeblendet ist, wird keine Überblendung auftreten, Sie brauchen es mething wie folgt aus:

$(".warning").hide().fadeIn(4000); 

You can give it a try here wird auch $() in 1.4+ veraltet, Sie $(document) oder die kürzere Version, wie diese verwendet werden soll:

$(function() { 
    $(".warning").hide().fadeIn(4000); 
}); 

Die Alternative ist ein display: none zunächst das Element geben aber dies bricht für JS-behinderte Benutzer, oder wenn JavaScript-Fehler auftreten verhindern die Fade, so möchten Sie vielleicht von diesem Ansatz zu vermeiden.

+0

Das war genau was falsch war! Vielen Dank! –

+0

genau das, was ich gesucht habe ... genial ... – NiK

+0

Genau !!! @nick carver das ist was ich wollte – Shrivallabh

8

Fügen Sie display:none zu Ihrem CSS-Code hinzu.

.warning{border: 1px solid #F0AAAA; background:#FFBABA; color: #C90000;display:none} 
+0

Vielen Dank für die Antwort! Ich vermeide diese Lösung wegen der Fallstricke, die in der obigen Antwort aufgezeigt wurden. –

1

Ich würde eher denken, dass Sie möchten, dass ein Ereignis für das Fadin verwaltet wird. siehe Arbeitsbeispiel hier: http://jsfiddle.net/hPHPn/

So:

$(document).ready(function(){ 
    $(".warning").hide();// hide it initially 
    $('#unhideit').click(function(){ 
     $(".warning").fadeIn(4000);       }); 
}); 

für einige einfache Markup:

<p class="warning">A successful authorization already exists 
    for this Quote ID. Further authorizations are not allowed at this time.</p> 
<input type="button" id="unhideit" value="clickme" /> 
1

Ich habe vor kurzem die gleiche Sache in meiner Anwendung getan. An der Spitze meiner html Dokument Ich habe:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="advtemp3jquery.js"></script> 

Der Teil der src="advtemp3jquery.js bezieht sich auf meine externe .js Datei sagt. Ich finde es besser, den Code in einer externen Datei zu behalten.

Das Skript führt Folgendes aus:

$(document).ready(function() { 
    $('.header1,.header2').fadeIn('4000'); 
});