Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当div高度更改时更改滚动位置_Javascript_Html_Css_Vue.js - Fatal编程技术网

Javascript 当div高度更改时更改滚动位置

Javascript 当div高度更改时更改滚动位置,javascript,html,css,vue.js,Javascript,Html,Css,Vue.js,假设我们有一个diva,它有一个大的高度值,低于其他divB,C 如果用户看到B或C,并且A将其高度降低一半,则滚动位置将保持不变,但divs B、C将移动到顶部。那么接下来的E,F,G。。。将显示 在这种情况下,是否有任何css值可以帮助保持B或C显示,而不是将其上移?或者,只有通过js(并反向滚动高度变化量)才能实现此功能?在调整元素大小后,您必须调整当前滚动,尝试此功能,如果它对您有效,请根据您的需要进行调整 此演示将在3秒钟后调整第一个元素的大小,并相应地修改滚动位置 const ta

假设我们有一个div
a
,它有一个大的
高度
值,低于其他div
B
C

如果用户看到B或C,并且
A
将其高度降低一半,则滚动位置将保持不变,但divs B、C将移动到顶部。那么接下来的E,F,G。。。将显示


在这种情况下,是否有任何css值可以帮助保持B或C显示,而不是将其上移?或者,只有通过js(并反向滚动高度变化量)才能实现此功能?

在调整元素大小后,您必须调整当前滚动,尝试此功能,如果它对您有效,请根据您的需要进行调整

此演示将在3秒钟后调整第一个元素的大小,并相应地修改滚动位置

const target=document.querySelector('.target');
函数resizeTarget(新高度){
const doc=document.documentElement;
const top=(window.pageYOffset | | doc.scrollTop)-(doc.clientTop | 0);
target.style.height=newHeight+'px';
const viewportHeight=Math.max(document.documentElement.clientHeight,window.innerHeight | | 0);
如果(target.offsetTop+newHeight{
resizeTarget(200);
}, 3000);
.box{
宽度:300px;
高度:200px;
背景:番茄;
利润率:10px;
}
.目标{
高度:400px;
背景:水鸭;
}

我不完全清楚你所说的“降低高度”是什么意思,但你不能严格使用HTML和CSS更改高度和移动div。您可以查找前/后css

或者你需要一个脚本。有一些Javascript库可以让它变得更简单,比如Scroll Magic。它允许您在HTML页面中删除脚本,并使用“控制器”设置偏移点


需要脚本非常确定您需要javascript来实现这一点