JQuery - div dissolvenza guai
Domanda
ho div, che ha 'contenuto' id. E 'visibile.
<div id="wrapper" style="display:block">
<div id="content">
Some text
</div>
</div>
Ora voglio svanire fuori:
$('#wrapper').fadeIn( 1500 );
$('#content').click(function(){
$(this).fadeOut( 1500 );
});
E non succede nulla. Ma quando ho scritto:
$('#content').fadeIn( 1500 );
Si nasconde e poi mostra ancora una volta.
Ecco css
#content
{
height: 100%;
width: 100%;
}
Browser: Firefox 3.5.3 Linux Gentoo
UPD
Quando digito il codice:
$('#content').hide();
Si nasconde in modo corretto.
UPD
Ho risolto problema ... non riesco a capire, perché è stato ... Basta sostituito jquery.min con jQuery
Soluzione
Se ho capito la tua domanda, ci sono due problemi:. Il contenuto non svanisce, e quando si fa clic su di esso, il contenuto non svanisce fuori
Entrambi i problemi sono probabilmente causati dallo script l'esecuzione prima div involucro e contenuto sono apparsi nel documento. Se il tag <script>
è nel <head>
del documento, quindi $('#wrapper')
Non troverete niente di fade in e $('#content')
Non troverete niente di allegare un gestore di clic per.
La soluzione migliore è probabilmente di rinviare fare nulla fino a quando il documento viene caricato, utilizzando ready
:
$(document).ready(function () {
$('#wrapper').fadeIn(1500);
$('#content').click(function () {
$(this).fadeOut(1500);
});
});
In alternativa si potrebbe mettere il tag <script>
dopo i tag <div>
nel corpo.
Quando si risolvere questo problema il contenuto svanirà, ma non sarà liscia perché il div wrapper è inizialmente visibile avete style="display:block"
sul div wrapper. Hai bisogno di fare che display: none;
invece in modo che il div involucro è nascosto, mentre il caricamento della pagina.
Ecco un file completo che funziona:
<html>
<head>
<style type="text/css">
#wrapper
{
display: none;
}
#content
{
height: 100%;
width: 100%;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
window.alert("Couldn't load jQuery");
</script>
<script>
$(document).ready(function () {
$('#wrapper').fadeIn(1500);
$('#content').click(function () {
$(this).fadeOut(1500);
});
});
</script>
</head>
<body>
<div id="wrapper">
<div id="content">
Some text
</div>
</div>
</body>
</html>
Altri suggerimenti
Funziona per me, Firefox su OSX. Assicurarsi che l'ID sono uniche, se si dispone di una copia potrebbe non funzionare bene. Inoltre, il tuo stile: blocco è ridondante, div sono blocchi di default
.Hai ha scritto ( '# content') nella fadeOut e $ ( '# conent') nella fadeIn. Altro che questi effetti sono chiamati esattamente allo stesso modo e non offrono una spiegazione sul motivo per cui essi non sarebbero entrambi funziona come previsto.
Si sono anche lasciando un # in "#wrapper" (linea 1 di jQuery).