2014-07-20 32 views
18

AdminLTE si basa su Bootstrap: https://github.com/almasaeed2010/AdminLTEAdminLTE crollato scatole di default

Live Preview:http://almsaeedstudio.com/preview/

Ma io sono sicuri di come fare le scatole schiacciabili compresso per impostazione predefinita.

Sto assumendo poiché è basato su Bootstrap, questo dovrebbe essere piuttosto semplice. Ho provato altre implementazioni come impostare l'id su "collapsedOne" e tentare di trattare i div come fisarmoniche, ma senza successo.

Sulla AdminLTE/app.js ~ riga 45 c'è un codice che implementa la diapositiva su/giù per ridurre le finestre. Idealmente, quello che vorremmo è avere le caselle nello stato "slide up" per impostazione predefinita con la classe "collapsed-box" in modo che quando l'icona viene cliccata, esegue "slide down".

/*  
* 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(); 
    } 
}); 

Qualche suggerimento?

Grazie in anticipo.

risposta

8

$("[data-widget='collapse']").click() Aggiungi che a un file JavaScript che viene eseguito in fondo

+0

ho aggiornato il problema con una modifica. Chiamare il semplice "collasso" non funziona. –

+0

Vedere nuova risposta aggiornata – smistry

+0

Capisco che questo comprima le mie scatole dopo il caricamento della pagina, tuttavia vorrei che le scatole venissero compresse di default. –

3
$("[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(); 
    } 
}); 

e utilizzare nella sezione div

33

Quando la pagina viene caricata nel suo stato iniziale, perché non basta aggiungere la classe collapsed-box a elemento di scatola?

Il sotto renderà nello stato e la funzione crollato senza AdminLTE modificare:

 

    <!-- Default box --> 
    <div class="box box-solid collapsed-box"> 
     <div class="box-header"> 
      <h3 class="box-title">Default Solid Box</h3> 
      <div class="box-tools pull-right"> 
       <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button> 
       <button class="btn btn-default btn-sm" data-widget="remove"><i class="fa fa-times"></i></button> 
      </div> 
     </div> 
     <div style="display: none;" class="box-body"> 
      Box class: <code>.box.box-solid</code> 
      <p>bla bla</p> 
     </div><!-- /.box-body --> 
    </div><!-- /.box -->      
+0

Ma come gestire i segnali più e meno, @ user4036441? Con questa soluzione la scatola viene compressa quando la pagina viene caricata, ma il segnale che vediamo è il segnale meno. –

+5

@AloysiadeArgenteuil cambia semplicemente l'icona in '' 'fa-plus''' anziché' '' fa-minus'''. Questa è l'icona iniziale, il javascript di AdminLTE dovrebbe gestire l'inversione dopo. – gligoran

8

Ecco i passaggi:

  1. cambiare l'icona negativo a positivo.
  2. Add "display: none" esplicito stile di box-corpo
  3. Aggiungere la classe "crollato-box" per la casella
0

I corretti passaggi testate che ha lavorato per me sono:

  1. Aggiungi "display: none" stile esplicito alla scatola-corpo
  2. Si è fatto :)

     <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> 
    
6

Per coloro che utilizzano AdminLTE 2.1.1

semplicemente aggiungere sidebar-collapse classe sul <BODY>


Prima:

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


Dopo:

<body class="skin-blue sidebar-mini sidebar-collapse"> 
+0

non funziona per me –

0

per una specificare div

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

per tutti

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

Basta aggiungere "crollato-box" per la casella e modificare questa:

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

a

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

Questo dovrebbe funzionare per me

4

Una scatola aperta: <div class="box">

Una scatola è crollato: <div class="box collapsed-box">

e quindi modificare naturalmente l'icona sul pulsante

+0

ok grazie, questo funziona per me. –

0
<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

Ehi un po 'di 'html'! Avete qualche spiegazione o commento sul codice? – tmthydvnprt

0

Questo soluction ha funzionato per me:

ho aggiunto di classe "collasso-sinistra" per il menu e ha aggiunto la classe "strech" per il contenuto principale.

Io uso la versione 1 per AdminLTE. È diviso a parte class = "left-side" per il menu di sinistra e aside class = "right-side" per il contenuto principale.

Quindi, questo è il codice finale:

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

ho aggiunto questo all'oggetto 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); 

     }); 

    } 

e lo ha chiamato durante inizializzazione I:

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)); 
    },