2013-05-20 81 views
2

我有一個網站,我想在燈箱彈出時禁用所有滾動,然後在燈箱關閉時重新啓用它。 我有這樣的:Javascript:當點擊狀態欄時禁用iOS滾動條到頂部

document.ontouchmove = function(e){ 
    if (stopScroll) { 
     e.preventDefault(); 
    } 
} 

偉大的工程手動滾動,但用戶仍然可以在狀態欄點擊並獲得帶到頁面的頂部(現在的收藏夾不再被居中,或更糟的是,完全離開頁面)。我正在使用JQuery Mobile。我如何在iOS中暫時禁用此功能?

回答

0

我不相信這是可能的。一個更好的解決問題的辦法是防止您的收藏夾斷裂時滾動通過改變收藏夾位置固定的,而不是絕對的發生:

</style> 
.centered { 
    position: fixed; 
    top: 50%; 
    left: 50%; 
    margin-top: -50px; 
    margin-left: -50px; 
    background:#ccc; 
    width:100px; 
    height:100px; 
} 
</style> 
<div class="centered">I won't scroll off page</div> 

另一種方法是檢查滾動事件,並恢復原來的位置:

$('.show_popup').on('click', function(){ 
    var position= $(window).scrollTop(); // save pos   
    // show popup  
    $(window).scroll(function(){ 
     $(window).scrollTop(position); // restore pos on scroll 
    }); 
}); 

$('.hide_popup').on('click', function(){ 
    $(window).off(); // remove handler 
}); 

例子:jsFiddle

+0

我能做到這一點,但我真的想在屏幕上保持固定。它旨在模擬應用程序上的「共享」按鈕,以及防止滾動的全屏燈箱。如果「分享」燈箱彈出,然後用戶滾動到頂部,這是混亂的 - 他們是否共享相同的項目? – morgoe

+0

我用第二種可能的解決方案更新了我的答案。當我在iPhone上進行測試時,它工作正常。 – Justin

相關問題