2016-05-11 12 views
5

Ho una semplice jstree in un contenitore che è più piccolo di l'albero:Aggiungere un divario tra jstree testo i nodi e le barre di scorrimento

<div style="width:250px;height:150px; border:solid; overflow: auto;"> 
    <div id="jstree" style="padding:20px"></div> 
</div> 

vedere demo plunkr

Sto cercando di aggiungere uno spazio visivo (cioè di 5px) tra la porzione visibile del testo del nodo e le barre di scorrimento. in modo che vi sia uno spazio tra la fine di una linea tratteggiata e la barra di scorrimento verticale e le linee tratteggiate abbiano ".." alla fine e uno spazio tra la parte inferiore dell'albero e la barra di scorrimento orizzontale.

Ho visto molti post qui e ho provato varie combinazioni di padding, margini, div del wrapping ecc. Ma nessun successo.

La soluzione che sto cercando è:

  • idealmente css solo
  • aggiunge un divario tra la parte visibile del testo del nodo e sia l'orizzontale e la barra di scorrimento verticale
  • aggiunge puntini di sospensione per troncato testo
  • opere del nodo con jquery.scrollbar

thx!

+0

plunkr demo guarda bene ... – RRR

+0

yea capito ... aggiungere '.jstree-anchor { margin-right: 5px; } 'al file css – RRR

+0

poiché il divario è 5px non si nota la differenza di cambiamento da 5px a 50px – RRR

risposta

2

ho capito che si sta cercando di aggiungere puntini di sospensione prima del testo essere traboccato dai div. Di conseguenza al movimento della barra di scorrimento, il testo sarebbe mostrato.

Fondamentalmente, aggiungo un calcolo dopo che il plug-in attiva l'evento ready.jstree.

$('#jstree').on('ready.jstree', function() { 
    resizeWrap(); 
}); 

favore, controllare la soluzione completa: https://jsfiddle.net/alexndreazevedo/qozdy7m8/

+1

La tua soluzione sembra piacevole da vedere ma penso che @koffius stia cercando una prospettiva diversa. Il tuo css fa cambiare l'area quando apriamo e chiudiamo ogni nodo dell'albero. Questo a sua volta significa che l'effetto di avere risultati nascosti che dipendono da una barra di scorrimento non sarà mai nemmeno permesso che accada, eliminando così ogni possibilità di avere un effetto di riempimento. –

+0

Mi piace di più questa soluzione e gli darò la taglia. Il problema dell'altezza può essere facilmente risolto impostando un'altezza fissa sul div. Non riesco ancora a ottenere un vuoto prima della barra di scorrimento, ma almeno ottengo l'elisis che è bello. alexndreazevedo, se risolvi il problema dell'altezza e del gap, segnerò questa come risposta, grazie! – kofifus

+0

@kofifus, ho cambiato la funzione. Se il contenuto è maggiore della dimensione fissa del wrapper, calcola una larghezza minore per esporre il contenuto, simulando il riempimento. Per favore, vedere il collegamento e controllare la mia risposta :) https://jsfiddle.net/alexndreazevedo/qozdy7m8/ – alexndreazevedo

4

Ciao ecco una soluzione per questo problema ... si prega di controllare https://jsfiddle.net/RRR0308/jfu845zr/ ... Ho inserito un div posizionato in assoluto in div principale e ho impostato l'altezza e la larghezza in modo che dia l'effetto di 10px margine.

HTML

<div style="width:250px;height:150px; border:solid; overflow: auto;"> 
     <div id="jstree" style="padding:20px"></div> 
     <div class="xyz"></div> 
</div> 

CSS

.xyz{ 
    position:absolute; 
    height:133px; 
    width:10px; 
    background:#F3F5F6; 
    z-index:999; 
    top:11px; 
    left:235px; 

} 

demo aggiornata: https://jsfiddle.net/RRR0308/jfu845zr/3

+0

controlla gentilmente https://jsfiddle.net/RRR0308/jfu845zr/1/ ... Sto cambiando altezza e lasciato dinamicamente usando jQuery – RRR

+0

Aggiornato: https: // jsfiddle. net/RRR0308/jfu845zr/2/Ho risolto anche il problema più alto ... ora il div xyz sarà sempre all'interno del div principale – RRR

+0

Aggiornato: https://jsfiddle.net/RRR0308/jfu845zr/3/ questo imposterà la parte superiore e la posizione a sinistra di 'xyz' div all'interno del div principale anche se la finestra viene ridimensionata o div è fluttuata – RRR

0

Questo aggiunge uno spazio tra la parte visibile del testo del nodo e sia orizzontale che la barra di scorrimento verticale (5px aggiunto).

Aggiunge inoltre un'ellissi al testo del nodo troncato.

.jstree-anchor { 
    width: 150px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    margin-right: 5px; 
} 
+0

non sembra funzionare, campione? – kofifus

+0

https://plnkr.co/edit/VIFRq9kSShPtHU2tKfF1?p=preview aggiungi il css sopra nella sezione css. – sarath

+0

? Non vedo alcun gap o elipsis – kofifus

Problemi correlati