Javascript-Umschalten zwischen den drei versteckten divs
Hey alle,
Neuling hier, also bitte verzeihen Sie meine Herangehensweise und Besonderheiten. Ich würde schätzen etwas Hilfe!
Ich arbeite an einer Bildergalerie, die hat drei Abschnitte, von denen nur eine sichtbar sein wird in einer Zeit. An der Spitze der Seite gibt es drei links, die ich wollen, schalten Sie einen der drei Abschnitte zu zeigen, während versteckt die anderen beiden.
Den code, den ich geschrieben habe, ist schlecht und funktioniert nur von Link 1 zu Link 2 Link 3, nicht aber nach hinten oder von Links 1 zu 3, 3 zu 1, etc.
Dank für Eure Hilfe und Ratschläge!
HTML:
<div id="content">
<h2>PHOTOS</h2>
<hr />
<p align="left"><a id="show_promo">PROMO</a> <a id="show_studio">STUDIO</a> <a id="show_live">LIVE</a></p>
<div id="promo">
<p align="center">PROMO</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
</div>
<div id="studio">
<p align="center">STUDIO</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
</div>
<div id="live">
<p align="center">LIVE</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
<p align="center">
<img src="#" />
<img src="#" />
<img src="#" />
<img src="#" />
</p>
</div>
</div>
Javascript:
$('#studio').css('display', 'none');
$('#live').css('display', 'none');
$('#show_studio').click(function(){
$('#promo').fadeOut(600, function(){
$('#studio').fadeIn(600);
});
});
$('#show_live').click(function(){
$('#studio').fadeOut(600, function(){
$('#live').fadeIn(600);
});
});
$('#show_promo').click(function(){
$('#live').fadeOut(600, function(){
$('#promo').fadeIn(600);
});
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem hier ist, dass Sie hardcoding welches element muss ausgeblendet werden. Es wäre besser, wählen Sie diese dynamisch.
Zunächst sollten Sie eine Klasse hinzufügen, um Ihre
#show-
links und auf Ihrediv
s. Vielleichtshowlink
undsection
wäre eine gute Klasse Namen. Sie können dann verwenden die jQuery -:visible
- Selektor zu finden, die aktuell sichtbarendiv
.Dieser sollte dann die Arbeit für alle Ihre links und
div
s.http://jsfiddle.net/rfvgyhn/UdRrd/
Beispiel auf jsfiddle: http://jsfiddle.net/Damien_at_SF/umcG2/
Wenn die anchers geklickt wird dies Lesen, ich ' TS HTML und nutzen es als ID des neuen div zu zeigen. Die aktuelle div-Element hat eine Klasse namens
current
werden ausgetauscht, sobald der fade-Effekte sind abgeschlossen. Auf diese Weise können Sie die Adresse Ihres fade-out mit$('.current')
und Sie können die Adressen für die div, die Sie möchten, zu verblassen, in mit$('#'+id)
...Hoffe, das hilft 🙂
HTML:
JS:
CSS:
Gibt es eine Allgemeine Möglichkeit, todo dies. Es ist wichtig, dass Sie die Gruppe und identfy alle divs, die für eine Galerie. Dann müssen Sie einen Weg finden, zu informieren, die links, die Galerie, die Sie haben zu zeigen:
HTML:
JS:
Glück!
Denken Sie daran, dass für alle divs, müssen Sie die fade-out - beide von den anderen. Also in pseudocode, der für Klarheit, Sie wollen so etwas wie
Ich glaube, es gibt eine Möglichkeit jQuery fade zwei divs gleichzeitig, aber ich erinnere mich nicht, es beiläufig.
Der bessere Ansatz wäre die Verwendung einer generischen Klasse, so dass Sie nicht haben, um die Adresse der jeweiligen container getrennt und können neue hinzufügen, mit hin den code so umschreiben, zu einem späteren Zeitpunkt.
Was ich in der Regel nicht für Sachen wie das verstecken, all die Behälter und fügen Sie eine display-div enthält den sichtbaren Inhalt.
Markup
jQuery
Haben Sie vielleicht, zu schummeln, um mit dem eigentlichen Anhängen und verblassen in, aber in der Theorie sollte es funktionieren.
-Prost!