Personnellement, je voudrais juste utiliser le code JavaScript pour basculer entre les 2 classes.
La CSS décrire tout ce dont vous avez besoin sur votre div MOINS le fond de la règle, puis ajouter deux classes (e.g: élargi et s'est effondré) que les règles de chacun avec la bonne image d'arrière-plan (ou de fond si vous utilisez un sprite).
CSS avec des images différentes
.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;}
Ou CSS avec l'image sprite
.div {
background: url(img/sprite.gif) no-repeat left top;
/* Other styles */
}
.expanded {background-position: left bottom;}
Alors...
Code JavaScript avec des images
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).addClass('collapsed').removeClass('expanded');
}
else
{
$(this).addClass('expanded').removeClass('collapsed');
}
});
}
JavaScript avec du sprite
Remarque: l'élégant toggleClass ne fonctionne pas dans Internet Explorer 6, mais au-dessous de addClass
/removeClass
méthode fonctionnera très bien dans ce genre de situation
La solution la plus élégante (malheureusement pas Internet Explorer 6 de l'environnement)
$(function){
$('#button').click(function(){
$(this).toggleClass('expanded');
});
}
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).removeClass('expanded');
}
else
{
$(this).addClass('expanded');
}
});
}
Comme je sais que cette méthode de travail à travers les navigateurs, et je me sentirais beaucoup plus à l'aise de jouer avec les CSS et les classes qu'avec les changements de l'URL dans le script.