Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 有没有办法使用intersectionObserver更改滚动条上的div大小?_Javascript_Scroll_Intersection Observer - Fatal编程技术网

Javascript 有没有办法使用intersectionObserver更改滚动条上的div大小?

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语句,并检查它们滚动的像素数,以便在它们向上滚动

我试图在滚动时更改div的大小(或比例)。 这个div有一个.8的刻度。我希望滚动时逐步达到1的刻度。
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语句并检查它们在页面上的滚动距离。当它们继续滚动时,您可以逐渐更改比例。