Saltar al contenido

¿Hay alguna forma en jQuery de traer un div al frente?

Solución:

Esto es algo de CSS, no de jQuery (aunque puede usar jQuery para modificar el CSS).

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

O, el posicionamiento absoluto traerá algo a la cima:

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

Con jQuery (como preguntaste):

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

Es extraño cómo todo el mundo se fue con el índice z. ¿Por qué anular el orden de apilamiento natural cuando puede colocarlo al frente dentro del DOM?

Cuando trabaje con varios elementos, tendrá que recorrer y ver cuál tiene el índice Z más alto, y establecer la parte superior en ese +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);

Para una versión sin CSS (si ninguna de las capas tiene un índice z especificado), también puede agregar el elemento nuevamente:

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

(No sé si eso es más lento que con CSS z-index.)

Para no CSS que no sea jQuery, simplemente añádalo nuevamente:

// var element = document...;
element.parentNode.appendChild(element);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *