Лично я бы просто использовал код JavaScript для переключения между двумя классами.
Сделайте так, чтобы CSS обрисовал в общих чертах все, что вам нужно, в вашем МИВУСе с фоновым правилом, затем добавьте два класса (например, развернутый и свернутый) в качестве правил, каждый из которых имеет правильное фоновое изображение (или положение фона при использовании спрайта).
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 в скрипте.