offsetオプション
アフィックス(affix.js
)におけるoffsetオプションは、上下のオフセットを指定出来るオプション。
属性値一覧表
data-offset属性
data-offset-top属性とdata-offset-bottom属性
JavaScriptにおいてoffsetオプションを指定
JavaScriptにおいてoffsetオプションに数値だけを指定
JavaScriptにおいてoffsetオプションに関数を指定
属性値一覧表
初期設定値は、10
である。
属性値 | 説明 |
---|---|
数値 | 数値をひとつだけ指定した場合、上下のオフセットに同じ数値を適用する。ピクセル単位の数値で指定する。 |
{ top: 数値 } |
上のオフセットの値を、ピクセル単位の数値で指定する。 |
{ bottom: 数値 } |
下のオフセットの値を、ピクセル単位の数値で指定する。 |
{ top: 数値, bottom: 数値 } |
上(top)と下(bottom)のオフセットの値を、ピクセル単位の数値で指定する。 |
data-offset属性
data-offset
属性に数値を指定すると、上下のオフセットに同じ数値を適用する。
サンプル
ソースコード
HTML
<body role="document">
<div class="jumbotron">
<div class="container">
<h1>サンプル</h1>
<p><a href="../javascript/affix-options-data-offset.html#usage2" target="_blank">一定量スクロールした後に追従を開始するアフィックス(affix.js)</a>のサンプル。</p>
</div>
</div>
<div class="container-fluid">
<div class="container">
<div id="sampleAffixWrap">
<div id="sampleAffix" class="btn-group btn-group-justified" role="group" data-spy="affix" data-offset="270">
<a href="#" class="btn btn-default" role="button">A</a>
<a href="#" class="btn btn-default" role="button">B</a>
<a href="#" class="btn btn-default" role="button">C</a>
<a href="#" class="btn btn-default" role="button">D</a>
<a href="#" class="btn btn-default" role="button">E</a>
</div>
</div>
<p>スクロールし、A〜Eのボタン群が上端に到達すると、ボタン群だけを上端に固定表示する。</p>
<p>下端から270pxの位置に到達すると、固定表示を解除する。<</p>
<ol>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
</ol>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</body>
CSS
#sampleAffixWrap { height: 64px; } #sampleAffix { width: 480px; } #sampleAffix.affix { top: 0px; }
data-offset-top属性とdata-offset-bottom属性
data-offset-top
属性には、上のオフセットを指定出来る。
data-offset-bottom
属性には、下のオフセットを指定出来る。
サンプル
ソースコード
HTML
<body role="document"> <div class="jumbotron"> <div class="container"> <h1>サンプル</h1> <p><a href="../javascript/affix-bottom.html" target="_blank">特定の位置で追従を終了するアフィックス(affix.js)</a>のサンプル。</p> </div> </div> <div class="container-fluid"> <div class="container"> <div id="sampleAffixWrap"> <div id="sampleAffix" class="btn-group btn-group-justified" role="group" data-spy="affix" data-offset-top="270" data-offset-bottom="1500"> <a href="#" class="btn btn-default" role="button">A</a> <a href="#" class="btn btn-default" role="button">B</a> <a href="#" class="btn btn-default" role="button">C</a> <a href="#" class="btn btn-default" role="button">D</a> <a href="#" class="btn btn-default" role="button">E</a> </div> </div> <p>スクロールし、A〜Eのボタン群が上端に到達すると、ボタン群だけを上端に固定表示する。</p> <p>スクロールし、A〜Eのボタン群が下端から「1500px」の位置に到達すると、ボタン群の固定表示を終了する。</p> <ol> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> </ol> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> </body>
CSS
#sampleAffixWrap { height: 64px; } #sampleAffix { width: 480px; } #sampleAffix.affix { top: 0px; } #sampleAffix.affix-bottom { position: absolute; }
JavaScriptにおいてoffsetオプションを指定
offsetオプションを指定し、JavaScriptで呼び出す。
サンプル
ソースコード
JavaScript
$( function() { $('#sampleAffix').affix({ offset: { top: 70, bottom: 300 } }); });
HTML
<div class="container-fluid"> <div class="container"> <div id="sampleAffixWrap"> <div> <h1 class="sampleAffixTopOffset"><a href="../javascript/affix.html" target="_blank">アフィックス</a>において、<a href="../javascript/affix-options-offset.html#usage4" target="_blank">offsetオプションを指定しJavaScriptで呼び出す</a>サンプル。</h1> <div id="sampleAffix" class="btn-group btn-group-justified" role="group"> <a href="#" class="btn btn-default" role="button">A</a> <a href="#" class="btn btn-default" role="button">B</a> <a href="#" class="btn btn-default" role="button">C</a> <a href="#" class="btn btn-default" role="button">D</a> <a href="#" class="btn btn-default" role="button">E</a> </div> </div> </div> <p>A〜Eのボタン群が上端に来たら、上端に固定表示する。</p> <p>フッターがボタン群の位置まできたら、固定表示を解除する。</p> <ol> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> </ol> <div id="sampleFooter"> フッター </div> </div> </div>
CSS
#sampleAffixWrap { height: 134px; } #sampleAffix { width: 750px; padding: 0 20px; background-color: #fff; } #sampleAffix.affix { top: 0px; } #sampleFooter { height: 300px; background-color: #f0f0f0; }
JavaScriptにおいてoffsetオプションに数値だけ指定
サンプル
ソースコード
JavaScript
$( function() { $('#sampleAffix').affix({ offset: 70 }); });
HTML
<div class="container-fluid"> <div class="container"> <div id="sampleAffixWrap"> <div> <h1 class="sampleAffixTopOffset"><a href="../javascript/affix.html" target="_blank">アフィックス</a>において、<a href="../javascript/affix-options-offset.html#usage5" target="_blank">offsetオプションに数値だけ指定する</a>サンプル。</h1> <div id="sampleAffix" class="btn-group btn-group-justified" role="group"> <a href="#" class="btn btn-default" role="button">A</a> <a href="#" class="btn btn-default" role="button">B</a> <a href="#" class="btn btn-default" role="button">C</a> <a href="#" class="btn btn-default" role="button">D</a> <a href="#" class="btn btn-default" role="button">E</a> </div> </div> </div> <p>A〜Eのボタン群が上端に来たら、上端に固定表示する。</p> <p>フッターがボタン群の位置まできたら、固定表示を解除する。</p> <ol> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> </ol> <div id="sampleFooter"> フッター </div> </div> </div>
CSS
#sampleAffixWrap { height: 134px; } #sampleAffix { width: 750px; padding: 0 20px; background-color: #fff; } #sampleAffix.affix { top: 0px; } #sampleFooter { height: 300px; background-color: #f0f0f0; }
JavaScriptにおいてoffsetオプションに関数を指定
オフセットに、動的に算出した数値を指定したい場合は、関数を指定することで可能だ。
サンプル
ソースコード
JavaScript
$( function() { $('#sampleAffix').affix({ offset: { top: function () { return (this.top = $('.sampleAffixTopOffset').outerHeight(true)) }, bottom: function () { return (this.bottom = $('#sampleFooter').outerHeight(true)) } } }); });
HTML
<div class="container-fluid"> <div class="container"> <div id="sampleAffixWrap"> <div> <h1 class="sampleAffixTopOffset"><a href="../javascript/affix.html" target="_blank">アフィックス</a>において、<a href="../javascript/affix-options-offset.html#usage6" target="_blank">offsetオプションに関数を指定する</a>サンプル。</h1> <div id="sampleAffix" class="btn-group btn-group-justified" role="group"> <a href="#" class="btn btn-default" role="button">A</a> <a href="#" class="btn btn-default" role="button">B</a> <a href="#" class="btn btn-default" role="button">C</a> <a href="#" class="btn btn-default" role="button">D</a> <a href="#" class="btn btn-default" role="button">E</a> </div> </div> </div> <p>A〜Eのボタン群が上端に来たら、上端に固定表示する。</p> <p>フッターがボタン群の位置まできたら、固定表示を解除する。</p> <ol> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li> </ol> <div id="sampleFooter"> フッター </div> </div> </div>
CSS
#sampleAffixWrap { height: 134px; } #sampleAffix { width: 750px; padding: 0 20px; background-color: #fff; } #sampleAffix.affix { top: 0px; } #sampleFooter { height: 400px; background-color: #f0f0f0; }