6
我已經寫了一個帶有覆蓋層(與通常的圖片顯示器不相似)的彈出窗口,用戶單擊該覆蓋層並覆蓋了獲取大圖片以進行顯示的屏幕。jquery remove()跳回到頁面頂部
問題是,當用戶點擊'關閉'我的功能淡出圖片和覆蓋,然後刪除它們。當我打電話給.remove()
功能時,瀏覽器然後將焦點放在body標籤上並滾動到頁面的頂部。
我試圖通過捕獲offset.top
co-ords並將它們存儲在用戶點擊的元素的屬性上,以及彈出窗口關閉時和之後。 remove()
函數已被調用,我使用scrollTo()
函數返回正確的滾動位置(出於某種原因超調並將元素滾動到頂部)。
/*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');
}
爲什麼.remove()
功能造成跳回到頁面頂部?即使在scrollTo
左右工作,它看起來馬虎,因爲東西淡出,但跳轉到屏幕的頂部,然後回到有問題的元素。
阿酷謝謝:) – John 2012-02-27 00:02:42