Tengo un script que inserta elementos "emergentes" en el DOM. Establece sus propiedades top
y left
css en relación con las coordenadas del mouse en un evento de clic. Funciona muy bien, excepto que la altura de estos elementos "emergentes" es variable y algunos de ellos se extienden más allá del área visible de la ventana del navegador. Me gustaría evitar esto.¿Cómo forzar a los elementos posicionados a permanecer dentro del área visible del navegador?
Esto es lo que tengo hasta ahora
<script type="text/javascript">
$(function() {
$("area").click(function (e) {
e.preventDefault();
var offset = $(this).offset();
var relativeX = e.pageX - offset.left;
var relativeY = e.pageY - offset.top;
// 'responseText' is the "popup" HTML fragment
$.get($(this).attr("href"), function (responseText) {
$(responseText).css({
top: relativeY,
left: relativeX
}).appendTo("#territories");
// Need to be able to determine
// viewable area width and height
// so that I can check if the "popup"
// extends beyond.
$(".popup .close").click(function() {
$(this).closest(".popup").remove();
});
});
});
});
</script>
Me encanta la foto - ¿cómo te gustaría arreglarlo? Hazlo más corto? Hazlo simplemente usarlo como un borde? Voltear la otra dirección? –
Básicamente solo quiero 'intentar' forzar que todos los bordes de los elementos emergentes estén dentro del área visible. Por ejemplo. Si el borde inferior de una de las ventanas emergentes se extendía más allá del área visible en 50px, me gustaría moverlo -50px hacia la parte superior. – jessegavin