防止粘滞表单输入的位置更改
问题描述:
我有一个简单的网页,其中包含标题,动态内容和粘滞页脚。在页脚中,我有一个包含文本输入和提交按钮的表单。防止粘滞表单输入的位置更改
在内容超出页面可视区域的情况下,粘性表单的行为与预期相同(它在可见区域的底部可见)。
我注意到,当我输入文本更改到表单的文本字段时,动态内容将自动滚动到底部。我实现了一个黑客的内容滚动回它原来的位置,但我想知道是否有禁用滚动行为开始,用...的方式
https://jsfiddle.net/vy8h77xr/18/
HTML:
<div class="list" id="list">
<ul>
<li>content</li>
<!-- add more content to fill beyond the page -->
</ul>
</div>
<div class="footer">
<form id="form">
<input type="text" id="text"/>
<input type="submit" value="Submit" id="submit" />
</form>
</div>
CSS:
.footer {
position: sticky;
bottom: 0;
}
JS:
var text = document.getElementById("text");
text.addEventListener("keydown", (e) => {
var y = window.scrollY;
setTimeout(() => window.scrollTo(0, y), 0);
})
答
您正在使用粘性页脚,但从底部开始为0px,因此您并不完全需要这种类型的位置。尝试tu只需使你的页脚像这样固定。
.footer {
position: fixed;
bottom: 0;
}
https://jsfiddle.net/Andrej_v/vy8h77xr/20/
你可以找到更多关于这个位置在这里:
这将解决自动滚动的问题,但你没有得到实际的粘性行为(其中当内容没有填满整个屏幕时,页脚并未固定在底部)。 – Mackers