的想法是在网页尽快恢复到原来的位置,从而防止了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); –