
jQuery bietet einige wirklich einfache integrierte Funktionen zum „Ein- und Ausblenden“ verschiedener Seitenelemente. Ich dachte, wir könnten einige dieser Funktionen für einen wirklich einfachen **Spoiler Revealer** nutzen.
Demo anzeigen Dateien herunterladen
Mit etwas cleverem CSS und jQuery können wir unseren Markup wirklich sauber halten. Schauen Sie sich die Verwendung hier an.
<p>In the movie Citizen Kane, Charles Foster Kane's last word "Rosebud"
turns out to <span class="spoiler">be a sled.</span></p>
Das stimmt, nur „Spoiler“ in einem Span mit der Klasse „spoiler“. Das jQuery findet und versteckt all diesen Text und ersetzt ihn durch einen Button „Spoiler anzeigen“. Beim Klicken auf diesen Button verschwindet der Button und wird durch den Text aus dem Span ersetzt. Schauen Sie sich den Code an.
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("span.spoiler").hide();
$('<a class="reveal">Reveal Spoiler >></a> ').insertBefore('.spoiler');
$("a.reveal").click(function(){
$(this).parents("p").children("span.spoiler").fadeIn(2500);
$(this).parents("p").children("a.reveal").fadeOut(600);
});
});
</script>
Super einfach. Nur ein kurzes kleines Beispiel, um zu zeigen, wie schön und einfach es ist, mit jQuery zu arbeiten und wie es das ergänzen und erweitern kann, was Sie bereits mit CSS tun!
Fantastischer Tipp!
Na ja… wie lange wird es dauern, bis wir „jquery-tricks.com?“ sehen? LOL!
Danke Chris, das ist, was ich brauchte!
Gute Idee, Chris! Danke, dass du mir „The Village“ versaut hast! Eigentlich fand ich „The Village“ ziemlich gut.
$(this).parents(“p”).children(“span.spoiler”).fadeIn(2500);
kann leicht ersetzt werden durch
$(this).next().fadeIn(2500)
Viel Spaß mit jQuery
Ich dachte das Gleiche :p
Danke
Das ist ein interessanter Trick, aber um absolut niemanden zu spoilern, sollte er wahrscheinlich den Prinzipien der progressiven Verbesserung folgen.
Um zu verhindern, dass Leute gespoilert werden, die keine JavaScript-Unterstützung haben, einschließlich Leute, die den Inhalt in einem Feedreader oder auf einem mobilen Gerät lesen, sollten Sie viele, viele BR-Tags vor dem Spoiler einfügen, sowie eine Nachricht, die auffordert, nach unten zu scrollen, um den Spoiler zu lesen. Sie könnten dann Ihren jQuery-Code verwenden, um die BR-Tags und die Nachricht unsichtbar zu machen. Ihre Funktion, den Spoiler selbst sichtbar zu machen, würde die BR-Tags und die Nachricht unsichtbar lassen. Das Ergebnis wäre eine Spoiler-Warnung, die für jeden gut funktioniert, unabhängig von den Fähigkeiten des User-Agents.
Ich habe beschlossen, das im Kommentar 7 oben vorgeschlagene Enhancement zu simulieren und darüber zu bloggen. Hier ist der Link.
http://blogs.pathf.com/agileajax/2008/04/jquery-fade-in.html
Ich habe versucht, das zu tun.
Aber ich schaffe es nicht!
Ich habe das
script type=”text/javascript” src=”MEINE EIGENE URL, WO ICH DIE .JS HOCHGELADEN HABE”> /script>
$(document).ready(function() {
$(“span.spoiler”).hide();
$(‘Spoiler anzeigen >> ‘).insertBefore(‘.spoiler’);
$(“a.reveal”).click(function(){
$(this).parents(“p”).children(“span.spoiler”).fadeIn(2500);
$(this).parents(“p”).children(“a.reveal”).fadeOut(600);
});
});
/script>
Und im Text..
p>Im Film Citizen Kane ist Charles Foster Kanes letztes Wort „Rosebud“
stellt sich heraus, dass es ein Schlitten ist. /span> /p>
Und es macht den Spoiler nicht… weiß nicht warum.. :S
Ich musste die > anderen entfernen, weil sie diesen Teil löschen.
Irgendeine Hilfe? Ich benutze Blogger… :S
Können Sie eine Beispielseite einstellen, auf der Sie das Problem haben, damit wir sie uns ansehen können? Es scheint, als ob Sie es richtig machen…
Hey, toller Trick, ich möchte ihn wirklich auf meiner Website implementieren.
Skillsheaven
Danke.
Gibt es eine Möglichkeit, den aufgedeckten Text zu einem Link zu machen?
Mit anderen Worten, wie könnte man in Ihrem obigen Beispiel, wenn man die aufgedeckte Antwort auf eine imdb.com-Seite verlinken wollte, dies tun, ohne den „Aufdecken“-Text zu einem Link zu machen?
Chris, ich glaube, um zu validieren, müssen Sie den schließenden a-Tag escapen.
Spoiler anzeigen >></a>
sollte sein
Spoiler anzeigen >></a>
Das validiert und scheint ohne Probleme zu funktionieren.