Ich habe dieses Skript erstellt, das ein Div mit der richtigen Klasse öffnet und die anderen schließt.
function showhide(id) {
if (document.getElementById) {
var divid = document.getElementById(id);
var divs = document.getElementsByClassName("hideable");
for (var i = 0; i < divs.length; i = i + 1) {
divs[i].style.display = "none";
}
divid.style.display = "block";
}
return false;
}
Ist es möglich, Animationen wie Fadout zu erstellen, anstatt sie nur durch Anzeigeoptionen anzuzeigen?
Sie könnten es versuchen
function showhide(id) {
if (document.getElementById) {
var divid = document.getElementById(id);
var divs = document.getElementsByClassName("hideable");
for (var i = 0; i < divs.length; i = i + 1) {
$(divs[i]).fadeOut("slow");
}
$(divid).fadeIn("slow");
}
return false;
}
Schauen Sie sich diese Geige an " http://jsfiddle.net/9jtd3/ "
Es gibt viele weitere Techniken, die von der Jquery-Bibliothek bereitgestellt werden. Sie sollten sich auch das ansehen.
Wenn Sie Jquery verwenden, können Sie dies auch tun
function showhide(id) {
$(".hideable".fadeOut("slow");
$("#" + id).fadeIn("slow");
}
Angenommen, "verborgen" als Klassenname in Ihrer Gruppe von Divs
Viel Glück.
Dies wird sicherlich Ihr Problem lösen.
Sie können .fadeOut () direkt verwenden, wenn Sie die jQuery-Bibliothek in Ihr Skript aufgenommen haben.
Sie können slideDown() and slidUp()
von jQuery verwenden
$( document.body ).click(function () {
if ( $( "div:first" ).is( ":hidden" ) ) {
$( "div" ).slideDown( "slow" );
} else {
$( "div" ).slideUp("slow");
}
});
Dies ist nur mit CSS einfacher.
Du machst eine Klasse
div {
display:block;
transition: all .2s ease-out;
}
.hidden {
display:none;
}
Und mit Javascript wenden Sie die ausgeblendete Klasse an oder entfernen sie, wenn Sie möchten. jQuery animation lib ist weit davon entfernt, gut verwendet zu werden. Es ist klobig, und der Benutzer frisst Ressourcen. CSS arbeitet stattdessen mit Ihrer GPU und ermöglicht eine flüssigere Animation.