2015-08-14 65 views
0

我正在使用iframe顯示所有內容的網站上工作。這是一個巨大的痛苦,但在這個時刻我無能爲力。我有一個函數可以根據內容調整iframe的大小。但是,當我調用bootbox確認或警報時,它會將其位置置於iframe的滾動位置(我認爲)。由於iframe始終與其內容一樣高,因此它永遠不需要滾動,因此bootbox對話框始終顯示在iframe的頂部。我可以成功地位置,並根據像這樣父框架的滾動位置對話框......在iframe中動態地定位Bootbox

$(".modal-dialog").css("top",$(parent.window.document).scrollTop()); 

...但我不得不這樣做每次bootbox被調用。我正在尋找更好的方法。

有沒有辦法通過API來做到這一點?修改js文件?

編輯:我也聘請scrollTo滾動到頂部,但這不是很優雅。

回答

1

如何:

$("body").on("show", ".modal", function() { 
    $(this).css("top",$(parent.window.document).scrollTop()); 
}); 

或者:

$("body").on("shown.bs.modal", ".modal", function() { 
    $(this).find('div.modal-dialog').css("top",$(parent.window.document).scrollTop()); 
}); 

這樣,它應該聽你使用模式。

0

第二個選項有效。我遇到的唯一問題是,當模式框被調用時,窗口沒有向下滾動足夠遠,您可以看到它滑入查看位然後跳到所需的位置。我添加了動畫,因此它不那麼刺耳。這並不完美,因爲原來的動畫緩和下來,然後我的動畫接管,所以它有點h。。我可以忍受它,儘管如此謝謝你,哈克曼。

如果有人覺得找到更好的方法,請隨時免費!

$("body").on("shown.bs.modal", ".modal", function() { 
    $(this).find('div.modal-dialog').animate({top:$(parent.window.document).scrollTop()},200) 
});