Я особисто просто використовувати код JavaScript для переключення між двома класами.
Запропонуйте CSS окреслити все, що вам потрібно у вашому div MINUS, фоновому праві, а потім додайте два класи (наприклад: розширений та згорнутий) як правила для кожного з правильним фоновим зображенням (або фоновим положенням, якщо ви використовуєте спрайт).
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 із спрайтом зображень
.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');
}
});
}
JavaScript з спрайтом
Примітка: елегантний 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-адреси в сценарії.