親 div をスクロール可能 (overflow:auto) にして、子 div をスクロールできないようにすることは可能ですか? いいえ、「position:fixed」はビューポートに固定されるため、使用できません。子 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、そのページを表示したい場合は、単に ( ).fadeIn()ではなく ( #page1, ).fadeIn() を呼び出します。それは信じられないほど厄介になります。つまり、肝心なのは、div の構造は変更できないということです。#unscrollable1#page1
私が必要としているのは、( ).fixTo( ) のような css を.unscrollable修正#pagecontainerまたはオーバーライドする javascript #page1/ jQuery 関数です。#page2.unscrollable#pagecontainer