2010-07-13 24 views

risposta

40

Questa è una cosa CSS, non una cosa jQuery (anche se è possibile utilizzare jQuery per modificare il css).

$('element').css('z-index', 9999); // note: it appears 'zIndex' no longer works 

Oppure, posizionamento assoluto porterà qualcosa verso l'alto:

$('element').css('position', 'absolute'); 
+2

penso che avrete bisogno di entrambi, quindi posizione: assoluto E z-inde: 1 –

+2

concordato, ma questo appartiene veramente al css a meno che non si stia reagendo alle interazioni dell'utente –

+0

Sembra che voglia farlo dinamicamente e vuole sapere se jQuery ha questa funzionalità. – Greg

1

Utilizzare .css() e applicare l'attributo position e l'attributo z-index.

+1

In alternativa, applica una classe con gli attributi di cui hai bisogno con jQuery. – airmanx86

1

Sarebbe eccessivo di utilizzare jQuery per questo. Invece usare i CSS' z-index property:

<style type="text/css"> 
    #myElement { 
    z-index: 50000; 
    } 
</style> 
+3

Inizialmente ero d'accordo con questa risposta, ma sembra che la domanda riguardi il portare un certo div (di div sovrapposte) in primo piano quando necessario. L'impostazione di un particolare div in cima al markup statico non risolverà il problema. –

+0

5 anni dopo. Come posso portare un div in prima fila? Risposta: 'z-index: 5000000000000;' – teynon

+0

Fondamentalmente deve essere 1 superiore al più alto 'z-index' sulla pagina. –

15

Quando si lavora con più elementi dovrete scorrere e vedere quale ha il più alto z-index, e impostare la parte superiore a quella + 1.

http://jsfiddle.net/forresto/Txh7R/

var topZ = 0; 
$('.class-to-check').each(function(){ 
    var thisZ = parseInt($(this).css('zIndex'), 10); 
    if (thisZ > topZ){ 
    topZ = thisZ; 
    } 
}); 
$('.clicked-element').css('zIndex', topZ+1); 

Per una versione non-CSS (se nessuno degli strati hanno z-index specificata) si può anche semplicemente aggiungere l'elemento nuovo:

$('.click-to-top').click(function(){ 
    $(this).parent().append(this); 
}); 

(Non so se sia più lento rispetto a CSS z-index.)

Per non-CSS non-jQuer y, basta aggiungerla nuovamente:

// var element = document...; 
element.parentNode.appendChild(element); 
+2

Questa è una risposta utile per coloro che desiderano qualcosa di dinamico, in particolare se si utilizzano elementi trascinabili. – dennisbest

+0

manca il segno '$' ??? - $ (this) .parent(). append ($ (this)); ??? – Atara

+0

Nah, '$(). Append (elemento)' funziona. – forresto

21

Con jQuery (come ti ha chiesto):

$('#a-div').parent().append($('#a-div')); // Pop a div to the front 

strano come tutti sono andati con z-index. Perché sovrascrivere l'ordine di impilamento naturale quando puoi farlo scoppiare in primo piano all'interno del DOM?

+0

Impressionante idea e approccio, è strano andare su z-index quando questo approccio esiste, e accetto che la prima cosa che mi è venuta in mente è stato z-index: $ –

+0

Questo approccio aggiunge molti elementi del bambino che sono stati aggiunti ? per favore chiariscilo per me – qualebs

+0

@qualebs no sta afferrando un elemento esistente e spostandolo in cima all'ordine di impilamento – Yarin

Problemi correlati