Javascript 有没有办法使用intersectionObserver更改滚动条上的div大小?
我试图在滚动时更改div的大小(或比例)。 这个div有一个.8的刻度。我希望滚动时逐步达到1的刻度。Javascript 有没有办法使用intersectionObserver更改滚动条上的div大小?,javascript,scroll,intersection-observer,Javascript,Scroll,Intersection Observer,我试图在滚动时更改div的大小(或比例)。 这个div有一个.8的刻度。我希望滚动时逐步达到1的刻度。 IntersectionObserver似乎是使用它而不是滚动事件的一个不错的选择,但我不知道是否可以使用它更改元素的状态。您可以使用它更改div的比例 document.getElementById("scaledDiv").style.transform = "scale(1)"; 滚动事件应该执行您希望它执行的操作。您可以继续添加更多if语句,并检查它们滚动的像素数,以便在它们向上滚动
IntersectionObserver似乎是使用它而不是滚动事件的一个不错的选择,但我不知道是否可以使用它更改元素的状态。您可以使用它更改div的比例
document.getElementById("scaledDiv").style.transform = "scale(1)";
滚动事件应该执行您希望它执行的操作。您可以继续添加更多if语句,并检查它们滚动的像素数,以便在它们向上滚动时将其逐渐更改为1,甚至返回到0.8。下面的50表示距页面顶部50像素
window.onscroll = function() {
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
// They are scrolling past a certain position
document.getElementById("scaledDiv").style.transform = "scale(1)";
} else {
// They are scrolling back
}
};
我希望这将有助于您:
const container=document.querySelector('.container');
const containerHeight=container.scrollHeight;
const iWillExpand=document.querySelector('.iWillExpand');
container.onscroll=函数(e){
iWillExpand.style.transform=`scale(${0.8+0.2*container.scrollTop/(containerHeight-300)});
};代码>
.container{
高度:300px;
宽度:100%;
溢出y:滚动;
}
.我{
高度:1500px;
宽度:100%;
}
.iWillExpand{
位置:固定;
宽度:200px;
高度:200px;
顶部:10px;
左:10px;
背景色:浅绿色;
变换:比例(0.8);
}
感谢您的快速回答,但我正在尝试在滚动时动态更改它。您可以通过onscroll事件来实现这一点。添加更多if语句并检查它们在页面上的滚动距离。当它们继续滚动时,您可以逐渐更改比例。