【发布时间】:2020-12-08 09:44:54
【问题描述】:
我有一个页面,内容中间有一个div,它的高度可以从javascript改变。
当 div 高度发生变化时,如何控制页面滚动的方式?我希望内容总是被向下推,而不是向上。
目前,内容会被向下或向上推送,具体取决于单击按钮时页面滚动的位置。
这是一个最小的例子:
function toggle(ev) {
const div = document.querySelector("div");
if (div.style.height === "336px") {
div.style.height = "147px";
} else {
div.style.height = "336px";
}
}
body {max-width: 60em; margin: auto;}
<p style="background-color: coral; height: 400px;"></p>
<div style="background-color:grey; height: 147px;"></div>
<button href="#" onclick="toggle()">toggle div size</button>
<p style="background-color: olive; height: 3000px;"></p>
为了让事情更清楚,我正在寻找一种解决方案,即当 div 展开时,无论按钮当前在窗口的哪个位置,顶部段落都不会移动。即底部段落应该像按钮一样向上/向下移动。
【问题讨论】:
标签: javascript html css