2016-01-14 115 views
0

我一直試圖禁用身體上的滾動時出現模式彈出。我添加身體溢出隱藏,當我打開模式彈出,我將它設置爲默認狀態,當我關閉彈出up.this技術效果很好在所有桌面瀏覽器而不是在移動devices.To修復的iPod/iPhone的問題我補充溢出隱藏不在iPad中工作

-webkit-overflow-scrolling: touch; 

,但它不能在iPad上運行。 我的代碼

function toggleMenu() { 
if (!toggle) { 
$("body").css("overflow", "hidden"); 
}else{ 
$("body").css("overflow", ""); 
} 
toggle = !toggle; 

我已經嘗試了許多解決方案堆棧溢出,但沒有運氣建議。 注:位置固定也試過,但沒有運氣。 它運行良好,除iPod之外的所有其他設備。無法知道如何解決請有人幫助我解決問題。 謝謝。

+0

嘗試設置'最大高度:100vh'你的身體和一個'高度: 100vh'到你的''。但是由於你沒有一個最小的可驗證的例子,這和隨機猜測一樣好。 –

+0

此外,要移除背景可以滾動時的所有可能情況,您可以隱藏給身體更大高度的容器。像設置顯示:無; –

回答

0

試試這個

iPad的縱向&景觀

@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) { 
body{overflow:hidden;} 
} 
0

試試這個,

body.modal-open { 
    overflow: hidden; 
    position:fixed; 
    height: 100%; 
} 

該解決方案具有滾動到頂部的副作用。

如果您想在關閉模式後讓滾動位置保持不變,則應該添加更多的處理代碼,如下所示。

var scrollPosition; 

function onOpenModal(){ 
    scrollPosition = $('body').scrollTop(); 
    $('body').css("position", "fixed"); 
}; 

function onCloseModal(){ 
    $('body').css("position", "static"); 
    $('body').animate({"scrollTop": scrollPosition}, 0); 
}); 
0

嘗試添加{}時改變CSS參數更改:

$("body").css("overflow", "hidden"); 

要:

$("body").css({ 
    "overflow" : "hidden" 
});