2010-06-10 4 views
2

J'ai deux colonnes div colonnes (gauche) et page-contenu (droite). Je bascule en supprimant et en ajoutant 'sidebar' en utilisant jquery mais incapable de maximiser '# page-content' pour occuper l'espace vide quand sidebar est supprimé. J'ai essayé de supprimer 'margin-left: 250px;' mais le # contenu de la page va vers le bas. Bref je veuxComment maximiser une largeur div flottante quand un div est enlevé ou caché?

bascule avant

| barre latérale | contenu de la page |

Basculer après

| page-content                                 |

mais cela se produit comme

| barre latérale |
| page-content                                 |

Aidez-nous s'il vous plaît. Voici le css et la jquery utilisés. Thanx

css
#sidebar { 
    float:left; 
    width:185px; 
    color:#333; 
    padding:25px 25px; 
} 

#page-content { 
    margin-left:250px; 
    padding:25px 35px 25px 25px; 
    color:#333; 
} 

jQuery

$(document).ready(function() { 
$('a#side-toggle').click(function() { 
    $('#sidebar').toggle(400); 

return false; 
    }); 
}); 
+0

Bienvenue sur SO, s'il vous plaît visitez http://stackoverflow.com/faq – Reigel

Répondre

1

Eh bien, il devrait fonctionner effectivement.

Essayez d'ajouter une fonction de rappel à .toggle() où vous animez/supprimer la marge de votre contenu, comme:

$(document).ready(function() { 
    $('a#side-toggle').click(function() { 
    $('#sidebar').toggle(400, function(){ 
     $('.page-content').animate({marginLeft: '0'}, 1000); 
    }); 

    return false; 
}); 
}); 

exemple de travail: http://jsbin.com/eqiyu/edit

version mise à jour de Reigel: [jsbin.com/ eqiyu/2] [2]

[2]: http: // jsbin.com/eqiyu/2

+1

J'édité votre démo, http://jsbin.com/eqiyu/2 – Reigel

+0

Merci cela fonctionne première fois, mais il chevauche basculer. ce que j'ai utilisé $ ('a # slick-toggle'). Bind ('click', function() { $ ('# sidebar'). Toggle (400, function() { $ ('# page -content '). animate ({marginLeft:' 0 '}, 1000); }); }); }); – Maju

+0

première fois que cela fonctionne parfaitement, mais après il est devenu comme ça Ligne 1 | barre latérale | Ligne2 | contenu de la page | – Maju

0
#sidebar { 
    position:absolute; 
    left:0; 
    top:0; 
    width:185px; 
    color:#333; 
    padding:25px 25px; 
} 

#page-content { 
    margin-left:250px; 
    padding:25px 35px 25px 25px; 
    color:#333; 
} 
0
#sidebar { 
    position: absolute; 
    top: 0; 
    left: 0; 
    /**/ 
} 

#page-content { 
    position: absolute; 
    top: 0; 
    left: 0; 
    margin-left: 250px; 
    /**/ 
} 

En supposant que la marge de gauche sur # page-contenu est de sorte qu'il ne chevauche pas #sidebar, après avoir exécuté $ ("sidebar"). Toggle(), vous devez définir # marge de contenu de page à 0 ou 250px sur l'état de la bascule.

$(document).ready(function() { 
    $("a#side-toggle").click(function() { 
     $("#sidebar").toggle(400, function() { 
      var m = ($("#page-content").css("margin-left") == 250 ? 0 : 250) + "px"; 
      $("#page-content").animate({ marginLeft : m }, 400); 
     }); 
    }); 
}); 
+0

il ne fonctionne pas mais la barre latérale cache et montre des travaux. – Maju

Questions connexes