He escrito una ventana emergente con una superposición (no muy diferente de los visualizadores de imagen habituales) donde el usuario hace clic y una superposición cubre la pantalla que muestra la imagen completa para mostrar.jquery remove() salta a la parte superior de la página
El problema es que cuando el usuario hace clic en 'cerrar' mi función se desvanece y la superposición se elimina. Cuando llamo a la función .remove()
, el navegador se enfoca en la etiqueta del cuerpo y se desplaza a la parte superior de la página.
He intentado solucionar los problemas al capturar los offset.top
co-ords y almacenarlos en un atributo en el elemento en el que el usuario hace clic, y cuando el elemento emergente se cierra y después de. Se ha llamado a la función remove()
. Utilizo la función scrollTo()
para devolver la posición de desplazamiento correcta (que por alguna razón sobrepasa y desplaza el elemento hacia la parte superior).
/*creating the popup layer and picture*/
function newsPopup(obj){
/***PART ZERO - get the timestamp value of this ***/
var itemID = $(obj).attr('itemID');
var storyNumber = $(obj).attr('storyNumber');
/*adding the identifier for later*/
var offset = $(obj).offset();
var roundedOff = Math.round(offset.top);
$(obj).attr('scrollMeBack', roundedOff);
/*** the script then continues to create an overlay and picture popup
}
/*function to remove popup*/
function overlayRemove(){
//first fade out the cover and the container
$("#NEWS_overlay").fadeOut();
$("#NEWS_centeringContainer").fadeOut();
//then remove it from the page completely
setTimeout('$("#NEWS_overlay").remove();$("#NEWS_centeringContainer").remove();',400);
/*value to scroll the element back to*/
var scrollBack = $('[SpringCMSscrollMeBack]').attr('SpringCMSscrollMeBack');
setTimeout('$(window).scrollTop('+scrollBack+')',401); /*notes the 1 millisecond delay here to mean the scroll ahppen after the item has been removed.*/
$('[scrollMeBack]').removeAttr('scrollMeBack');
}
¿Por qué es la función .remove()
causando el salto de nuevo a la parte superior de la página? Incluso con el scrollTo
funciona, se ve descuidado cuando la materia se desvanece, pero salta a la parte superior de la pantalla y luego vuelve al elemento en cuestión.
Ah fresco gracias :) – John