ส่วนตัวแล้วฉันจะใช้รหัส JavaScript เพื่อสลับไปมาระหว่าง 2 คลาส
ให้ CSS จัดเค้าร่างทุกสิ่งที่คุณต้องการใน div ลบกฎพื้นหลังของคุณแล้วเพิ่มสองคลาส (เช่น: ขยายและยุบ) เป็นกฎแต่ละรายการด้วยภาพพื้นหลังที่ถูกต้อง (หรือตำแหน่งพื้นหลังหากใช้ sprite)
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;}
หรือCSS พร้อม sprite ภาพ
.div {
background: url(img/sprite.gif) no-repeat left top;
/* Other styles */
}
.expanded {background-position: left bottom;}
จากนั้น ...
รหัส JavaScript พร้อมรูปภาพ
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).addClass('collapsed').removeClass('expanded');
}
else
{
$(this).addClass('expanded').removeClass('collapsed');
}
});
}
จาวาสคริปต์กับผีสาง
หมายเหตุ: toggleClass ที่สวยงามไม่ทำงานใน Internet Explorer 6 แต่วิธีการด้านล่างaddClass
/ removeClass
จะทำงานได้ดีในสถานการณ์นี้เช่นกัน
โซลูชันที่หรูหราที่สุด (น่าเสียดายที่ไม่เป็นมิตรกับ Internet Explorer 6)
$(function){
$('#button').click(function(){
$(this).toggleClass('expanded');
});
}
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).removeClass('expanded');
}
else
{
$(this).addClass('expanded');
}
});
}
เท่าที่ฉันรู้วิธีการนี้จะทำงานกับเบราว์เซอร์และฉันจะรู้สึกสะดวกสบายในการเล่นกับ CSS และคลาสมากกว่าการเปลี่ยน URL ในสคริปต์