2012-02-09 14 views
6

que estoy tratando de colocar un div emergente a continuación:cómo colocar un div emergente basado en la posición de donde está el cursor hace clic

<div style="display:none;height:200px;width:200px;border:3px solid green;" id="popup">Hi</div> 

basado en el clic de otro div.

Estoy funcionando esto en el documento ready

$('div#d').bind('click', function (event) { 
var offset = $(this).offset(); 
$('#popup').css('left',offset.left);  
$('#popup').css('top',offset.top); 
$('#popup').css('display','inline');   
}); 

pero lo anterior ni siquiera voy a mostrar el div

Respuesta

16

El problema radican en el hecho de que compensado() no devuelven la posición correcta del ratón, tratar event.pageX y event.pageY lugar:

$(document).ready(function(){ 
    $('div#d').bind('click', function (event) { 
    $('#popup').css('left',event.pageX);  // <<< use pageX and pageY 
    $('#popup').css('top',event.pageY); 
    $('#popup').css('display','inline');  
    $("#popup").css("position", "absolute"); // <<< also make it absolute! 
    }); 
}); 

Ver here.

+1

Si el elemento que lo contiene es la posición: absoluta o relativa, el posicionamiento de la ventana emergente hace que aparezca en relación con el contenedor, no con la página. –

+1

Para una referencia y mejoras fáciles, aquí está el jsFiddle: https://jsfiddle.net/hwsamuel/fsp5pgqw/ –

1

Trate de añadir a su position: absolute div. Asegúrese de que no se encuentre dentro de otro div que tenga un posicionamiento relativo.

<div style="position: absolute; display:none;height:200px;width:200px;border:3px solid green;" id="popup">Hi</div> 

Top y sólo dejó el trabajo para los elementos con relative, absolute o fixed posicionamiento.

+0

que funciona bien para mostrar el div, gracias, pero no está posicionando el div donde hizo clic con el cursor –

+0

¿Se aseguró de que div no esté dentro de otra cosa que tenga un posicionamiento relativo? Intente convertirlo en el primer o último artículo de su cuerpo. – mrtsherman

Cuestiones relacionadas