我使用will-change: transform
了一个使滚动平滑的父元素。但是有一些子 div 尽管使用了position: fixed
.
为了演示,我创建了这个基本网页。
请注意,当我向下滚动红色框时,黄色和绿色框会离开视口。
代码:
<style>
.app {
background: silver;
width: 100%;
height: 100%;
overflow-y: scroll;
z-index: 99;
will-change: transform;
}
.yellow-box-left .green-box-right {
width: 250px;
max-width: 250px;
}
.yellow-box-left {
position: fixed;
left: 0px;
top: 0px;
background: yellow;
}
.green-box-right {
position: fixed;
right: 0px;
top: 0px;
background: greenyellow;
}
.red-box-middle {
min-height: 100%;
margin-right: 250px;
margin-left: 250px;
position: relative;
background: indianred;
}
</style>
<html>
<div class="app">
<div class="yellow-box-left">
<!-- A list of words -->
</div>
<div class="red-box-middle">
<!-- A long list to make this scrollable -->
</div>
<div class="green-box-right">
<!-- A list of words -->
</div>
</div>
</html>
如何将这些子 div 保持在固定位置?