[英]Custom scrolling on iOS (and all mobile devices) when input is focused
問題:
當選擇輸入時,我希望屏幕滾動,以便聚焦輸入正好在屏幕頂部。
我希望這適用於iOS和所有其他移動設備。
$('#input').on('focus focusin', function(e) {
e.preventDefault();
$('html').animate({
scrollTop: $('#anchor').offset().top
}, 300);
})
這段代碼在桌面上工作得很好,但是一旦我在iPhone上加載頁面,它就會完全停止工作,並且默認的滾動行為會在第一個gif中看到。
所以你只需要它滾動所以輸入的頂部成為屏幕的頂部?
我在輸入上方添加了2個像素的間隙,這樣您就可以看到輸入頂部的邊框了。
$('#input').on('focus', function(e) {
e.preventDefault();
$('html, body').animate({
scrollTop: $(this).offset().top-2;
}, 1000);
})
終於搞清楚了問題!
經過數小時和數小時的搗亂,我發現問題不在於代碼。 我的問題中顯示的代碼完美無缺。
問題恰好是我的本地測試環境 (命令提示符下的python manage.py runserver 0.0.0.0:8000
)。
我還沒有找到原因。 但我確定我在生產和本地測試環境中使用Django 1.11.4和jQuery 3.1.1。 那么為什么會出現這個問題超出了我的想象。
我最好的猜測是jQuery和Django的本地測試服務器之間存在一些不兼容性。 🤷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.