我想知道当用户输入或点击<input type="text"></input>
答案 0 :(得分:2)
所以我想出了如何实现这一目标,我将把它留作其他任何需要解决这个问题的人的记录。 (注意:此解决方案仅在safari和Firefox上测试过)
作为强>
<input id="text" type="text" />
功能
document.getElementById('text').onkeydown = new function(event){return false}
不会导致窗口移动滚动,以便用户在键入字段时可以看到输入字段。如果像我这样想要这对某些字母发生,而对其他人来说则不然,只需编辑onkeydown函数的内容,以便它对某些键码返回false,对其他键码则返回true。
答案 1 :(得分:1)
我遇到了类似的问题。尝试使用以下解决方案:订阅focus
事件,在其处理程序中禁用窗口滚动并通过超时启用滚动。
我知道解决方案似乎不是很干净,但是演示看起来不错,没有视觉缺陷。
$(function() {
var oldScroll = window.onscroll;
$(document).on('focus', 'input', function(e) {
window.onscroll = function () {
window.scroll(0,0);
} ;
setTimeout(function() {
window.onscroll = oldScroll;
}, 100);
});
});
答案 2 :(得分:0)
您可以每n毫秒将scrollTop属性设置为x。我认为这种方法的问题是当用户试图滚动页面时,页面会显得生涩(技术术语)。
此外,你会打破用户的期望,他们可以随时滚动页面,我建议不要这样做,因为它最多会让他们感到困惑并且最坏的时候会烦扰他们。