Şahsen sadece 2 sınıf arasında geçiş yapmak için JavaScript kodunu kullanırdım.
CSS, div MINUS arka plan kuralınızda ihtiyacınız olan her şeyi ana hatlarıyla belirtin, ardından her biri doğru arka plan resmine (veya hareketli grafik kullanıyorsanız arka plan konumuna) sahip kural olarak iki sınıf ekleyin (örneğin: genişletilmiş ve daraltılmış).
Farklı görüntülere sahip CSS
.div {
/* button size etc properties */
}
.expanded {background: url(img/x.gif) no-repeat left top;}
.collapsed {background: url(img/y.gif) no-repeat left top;}
Veya resim hareketli grafikli CSS
.div {
background: url(img/sprite.gif) no-repeat left top;
/* Other styles */
}
.expanded {background-position: left bottom;}
Sonra...
Resimli JavaScript kodu
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).addClass('collapsed').removeClass('expanded');
}
else
{
$(this).addClass('expanded').removeClass('collapsed');
}
});
}
Sprite ile JavaScript
Not: zarif toggleClass, Internet Explorer 6'da çalışmaz, ancak aşağıdaki addClass/ removeClassyöntem de bu durumda iyi çalışır
En zarif çözüm (ne yazık ki Internet Explorer 6 dostu değil)
$(function){
$('#button').click(function(){
$(this).toggleClass('expanded');
});
}
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).removeClass('expanded');
}
else
{
$(this).addClass('expanded');
}
});
}
Bildiğim kadarıyla bu yöntem tarayıcılar arasında çalışacak ve CSS ve sınıflarla oynamak komut dosyasındaki URL değişikliklerinden çok daha rahat hissederdim.