gpt4 book ai didi

html - 页面顶部固定位置栏的向下翻页键可用性

转载 作者:太空狗 更新时间:2023-10-29 15:17:59 25 4
gpt4 key购买 nike

如果您在页面顶部有一个绝对定位(位置:固定)的栏,就像许多网站那样,它会破坏 Page Down 按钮(以及 Page Up)的行为。 Page Down 不是在屏幕顶部留下一行左右的文本,而这些文本以前位于屏幕底部,以便于继续阅读,而是有一点点截断非常烦人。 Here is a contrived example of this.有没有办法解决这个问题(除了避免页面顶部的固定位置栏)?

上面链接示例的源代码在下面为后代重复:

<!doctype html>
<html lang="en">
<head>
<style type="text/css">
#bar {
background: #f00;
height: 200px;
position: fixed;
top: 0;
width: 100%;
}

p {
margin-top: 250px;
}
</style>
</head>
<body>

<div id="bar">IMPORTANT STUFF GOES HERE</div>

<p>When you press Page Down (and then Page Up the other way), some of the list items are cut off below the red bar.</p>

<ol><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li><li></ol>

</body>
</html>

我找到了 someone else already asking this question ,但似乎他得到的唯一答案是有人误解了这个问题。希望我的问题(包括示例)更清楚,并且有人可以帮助我。

最佳答案

您必须检查 Page Down/Up 键 onkeydown(或 onkeyup),如果您的页面需要用户键入(可能会产生大量开销),这就不太好了。也就是说,您可以尝试以下操作。我没有测试过这么多,所以我不知道它有多健壮。关键是要跟踪滚动位置并根据“bar”div 的 offsetHeight 进行调整。这是代码:

<!doctype html>
<html>
<title></title>
<head>
<style type="text/css">
html, body {
height:100%;
}
body {
margin:0;
padding:0;
}
#bar {
background: #f00;
height: 200px;
position: fixed;
top: 0;
width: 100%;
}

p {
margin-top: 250px;
}
li {
margin:2em 0;
}
#divScroll {
overflow:auto;
height:100%;
width:100%;
}
</style>

<script language="javascript">
function adjustScroll(event) {
var ds = document.getElementById('divScroll');
var b = document.getElementById('bar')
var e = event || window.event;
var key = e.which || e.keyCode;
if(key === 33) { // Page up
var remainingSpace = ds.scrollHeight - ds.scrollTop;
setTimeout(function() {
ds.scrollTop = (remainingSpace >= ds.scrollHeight - b.offsetHeight) ? 0 : (ds.scrollTop + b.offsetHeight);
}, 10);
}
if(key === 34) { // Page down
var remainingSpace = ds.scrollHeight - ds.scrollTop - ds.offsetHeight;
setTimeout(function() {
ds.scrollTop = (remainingSpace <= b.offsetHeight) ? ds.scrollHeight : (ds.scrollTop - b.offsetHeight);
}, 10);
}
}

document.onkeydown = adjustScroll;
</script>
</head>

<body>

<div id="bar">IMPORTANT STUFF GOES HERE</div>

<div id="divScroll">
<p>When you press Page Down (and then Page Up the other way), some of the list items are cut off below the red bar.</p>
<ol>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
</ol>
</div>

</body>
</html>

关于html - 页面顶部固定位置栏的向下翻页键可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6393508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com