是否可以让父 div 可滚动(溢出:自动),但子 div 不可滚动?不,我不能使用“位置:固定”,因为它将它固定到视口。我需要将子 div 修复为父 div。
代码示例:
#pagecontainer {
overflow:auto;
width:1000px;
height:450px;
}
#pagecontainer>div{ /*each of the pages*/
margin-top:50px;
padding-left:50px;
padding-right:50px;
position:relative;
}
.unscrollable{
position:absolute;
width: 250px;
}
.scrollable{
margin-left:300px;
float:left;
}
HTML
<div id="pagecontainer">
<div id="page1">
<div class="unscrollable"> <!--UNSCROLLABLE-->
<a href="#page1" class="link">Link 1</a>
<p>
<a href="#page2" class="link">Link 2</a>
<p>
<a href="#page3" class="link">Link 3</a>
<p>
<a href="#page4" class="link">Link 4</a>
<p>
</div>
<div class="scrollable"> <!--SCROLLABLE-->
content content content
</div>
</div>
<div id="page2">
<div class="unscrollable"> <!--UNSCROLLABLE-->
<a href="#page1" class="link">Link 1</a>
<p>
<a href="#page2" class="link">Link 2</a>
<p>
<a href="#page3" class="link">Link 3</a>
<p>
<a href="#page4" class="link">Link 4</a>
<p>
</div>
<div class="scrollable"> <!--SCROLLABLE-->
content content content
</div>
</div>
</div>
我不能只制作子 div .scrollable overflow:auto(这确实会修复.unscrollable),因为由于 50px 的边距,滚动条将有 50px 的间隙,并且它只会相对于 .scrollable 滚动。我需要滚动条打开#pagecontainer,或者#page1/#page2也可以。
我也不能放在.unscrollable外面#pageX。我需要将代码组织起来,.unscrollable是每一页的一个部分。如果我放在.unscrollable外面#pageX,那么我需要为每个页面创建一个不可滚动的ID,即#unscrollable1 #unscrollable2,然后在我想显示该页面时调用( #page1, ).fadeIn(),而不是简单的( ).fadeIn()。这将变得令人难以置信的混乱。所以底线是 div 的结构不能改变。#unscrollable1#page1
我需要的是一些 javascript/jQuery 函数,它可以.unscrollable固定#pagecontainer或#page1/#page2覆盖任何 css,例如 ( .unscrollable).fixTo( #pagecontainer)(如果存在)。