web-dev-qa-db-fra.com

AdminLTE boîtes réduites par défaut

AdminLTE est basé sur Bootstrap: https://github.com/almasaeed2010/AdminLTE

Aperçu en direct:http://almsaeedstudio.com/preview/

Mais je ne sais pas comment rendre les boîtes réductibles réduites par défaut.

Je suppose que depuis qu'il est construit sur Bootstrap, cela devrait être plutôt simple. J'ai essayé d'autres implémentations telles que définir l'identifiant sur "collapsedOne" et tenter de traiter les divs comme des accordéons, mais en vain.

Sur la ligne AdminLTE/app.js ~ 45, il y a du code qui implémente glisser vers le haut/glisser vers le bas pour réduire les zones. Idéalement, nous souhaitons que les boîtes soient dans l'état "glisser vers le haut" par défaut avec la classe "boîte effondrée" afin que, lorsque l'utilisateur clique sur l'icône, celle-ci s'exécute "glisser vers le bas".

/*     
 * Add collapse and remove events to boxes
 */
$("[data-widget='collapse']").click(function() {
    //Find the box parent        
    var box = $(this).parents(".box").first();
    //Find the body and the footer
    var bf = box.find(".box-body, .box-footer");
    if (!box.hasClass("collapsed-box")) {
        box.addClass("collapsed-box");
        bf.slideUp();
    } else {
        box.removeClass("collapsed-box");
        bf.slideDown();
    }
});

Aucune suggestion?

Merci d'avance. 

21
user1205371

Lorsque la page se charge dans son état initial, pourquoi ne pas simplement ajouter l'élément collapsed-box class to box?

Les éléments ci-dessous s'afficheront dans l'état et la fonction réduits sans modifier AdminLTE:


 <! - Zone par défaut -> 
 <div class = "box-solid collapsed-box"> 
 <div class = "box-header"> 
 <h3 class = "box-title"> Boîte solide par défaut </ h3> 
 <div class = "box-tools pull-right"> 
 <button class = "btn btn-default btn-sm" data-widget = "collapse"> <i class = "fa-plus"> </ i> </ button> 
 <button class = "btn btn-default btn-sm" data-widget = "remove"> <i class = "fa fa fois"> </ i> </ button>. </ div> 
 </ div> 
 <div style = "display: none;" class = "box-body"> 
 Classe Box: <code> .box.box-solid </ code> 
 <p> bla bla </ p> 
 </ div> <! - /.box-body -> 
 </ div> <! - /.box -> 
40
user4036441

$("[data-widget='collapse']").click() Ajouter cela à un fichier JavaScript qui s'exécute en bas

8
smistry

Voici les étapes:

  1. Modifiez l'icône moins en plus.
  2. Ajouter un style explicite "display: none" au box-body 
  3. Ajouter la classe "collapsed-box" à la boîte
8
user2649102

Pour ceux qui utilisent AdminLTE 2.1.1

ajoutez simplement la classe sidebar-collapse sur le <BODY>


Avant:

 <body class="skin-blue sidebar-mini">


Après:

 <body class="skin-blue sidebar-mini sidebar-collapse">
7
brianlasta
$("[data-widget='collapse']").click(function() {
    //Find the box parent........
    var box = $(this).parents(".box").first();
    //Find the body and the footer
    var bf = box.find(".box-body, .box-footer");
    if (!$(this).children().hasClass("fa-plus")) {.
        $(this).children(".fa-minus").removeClass("fa-minus").addClass("fa-plus");
        bf.slideUp();
    } else {
        //Convert plus into minus
        $(this).children(".fa-plus").removeClass("fa-plus").addClass("fa-minus");
        bf.slideDown();
    }
});

et utiliser dans la section div

4
jaqb

Une boîte ouverte: <div class="box">

Une boîte réduite: <div class="box collapsed-box">

Et puis bien sûr changer l'icône sur le bouton

4
Ola Ekelund

Ajoutez simplement "collapsed-box" à la boîte et changez ceci:

<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>

à 

<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>

Cela devrait fonctionner pour moi

1
maartenvr98
<div class="box box-default collapsed-box">
  <div class="box-header with-border">
    <h3 class="box-title">Expandable</h3>
    <div class="box-tools pull-right">
      <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->
0
Aamir Iqbal

Cette solution a fonctionné pour moi:

J'ai ajouté la classe "collapse-left" pour le menu et la classe "strech" pour le contenu principal.

J'utilise la version 1 pour le AdminLTE. Il est divisé en apartement class = "left-side" pour le menu de gauche et apart class = "right-side" pour le contenu principal.

Donc, ceci est le code final:

<aside class="left-side collapse-left"> 
    <!-- put the left menu here --> 
</aside>
<aside class="right-side strech"> 
    <!-- put the main content here -->
</aside>
0
Luciano Fernandes

pour un spécifiez div

$(function() { $('your-button-id').click(); })

pour tous 

  $(function() { $("[data-widget='collapse']").click(); })
0
jtraslavi

J'ai ajouté ceci à l'objet boxWidget:

setInitialCollapseStatus: function (container) {
        var _this = this;
        var collapsedBoxes = container.find('.box.collapsed-box .btn-box-tool > i');

        collapsedBoxes.each(function (index) {
            var box = $(this);
            //Convert minus into plus
            box
                .removeClass(_this.icons.collapse)
                .addClass(_this.icons.open);

        });

    }

et l'a appelé lors de l'initialisation: 

activate: function (_box) {
        var _this = this;
        if (!_box) {
            _box = document; // activate all boxes per default
        }
        //Listen for collapse event triggers
        $(_box).on('click', _this.selectors.collapse, function (e) {
            e.preventDefault();
            _this.collapse($(this));
        });

        //Listen for remove event triggers
        $(_box).on('click', _this.selectors.remove, function (e) {
            e.preventDefault();
            _this.remove($(this));
        });

        // Set initial collapseStatus
        _this.setInitialCollapseStatus($(_box));
    },
0
Niklas Wulff

Les étapes testées correctes qui ont fonctionné pour moi sont:

  1. Ajouter un style explicite "display: none" au box-body
  2. Vous avez terminé :)

            <div class="box ">
                        <div class="box-header with-border bg-yellow">
                          <h3 class="box-title">Box Title Here</h3>
                          <div class="box-tools pull-right">
                            <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
                            <button class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
                          </div>
                        </div><!-- /.box-header -->
                        <div class="box-body" style="display: none;">
                          <div class="table-responsive">
    
                                <!--Your content here -->
    
                          </div><!-- /.table-responsive -->
                        </div><!-- /.box-body -->
    
            </div>
    
0
Robin Agrahari