的想法是在網頁儘快恢復到原來的位置,從而防止了iOS滾動動畫。
您只需一個focus
處理程序添加到您的輸入文本字段,並在此處理你先閱讀window.scrollTop
財產,不是設置回0毫秒的延遲。
這裏是我的代碼(使用jQuery):
$("#myinput").on("focus", function() {
var scrollTop = $(window).scrollTop();
setTimeout(function() {
$(window).scrollTop = scrollTop;
}, 0);
});
我希望有這沒有錯誤 - 事實上,我現在用的打字稿,所以如果你想在這裏看到我的原代碼,它是:
this._inputText.on("focus",() => {
var jQueryWin:JQuery = <JQuery>$(window);
var scrollTop:number = jQueryWin.scrollTop();
setTimeout(() => {
jQueryWin.scrollTop(scrollTop);
}, 0);
});
行 - 我希望這有助於你們與輸入元素打交道時更好地控制不必要的頁面滾動。
這對我無效。有沒有其他人在這方面取得成功? – HasFiveVowels
它正在工作!它不適用於@Tim的原因是,對於JavaScript版本,您必須更改 $(window).scrollTop = scrollTop; 至 $(window).scrollTop(scrollTop); –