是否可以让父 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
)(如果存在)。