Overview
簡単にサイドバーなどのHTML要素の固定を実装するjQueryプラグインです。
スクロール量がサイドバーの下辺を超えた時に固定するだけでなく、下スクロールから上スクロールに切り替えた時にすぐにサイドバーも上方向にスクロールするのが特徴です。
簡単にサイドバーなどのHTML要素の固定を実装するjQueryプラグインです。
スクロール量がサイドバーの下辺を超えた時に固定するだけでなく、下スクロールから上スクロールに切り替えた時にすぐにサイドバーも上方向にスクロールするのが特徴です。
サイドバー$("#aside")を固定してみます。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#aside").frix(); });
</script>
複数要素を固定してみます。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $(".aside").frix(); });
</script>
ヘッダナビのようなバーチカルな要素も固定できます。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#nav").frix(); });
</script>
data属性を使って設定を追加します。
デフォルトではfrix()対象の親要素の底辺で固定が終了します。
停止位置を親要素以外にしたい時にこの設定をします。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#aside").frix(); });
</script>
<div id="aside" data-frix-fixed-target="#target">
・・・
</div>
上方向にスクロール中、frix()対象の要素が上辺で固定されている時にmargin-topを設定します。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#aside").frix(); });
</script>
<div id="aside" data-frix-scroll-margin-top="50">
・・・
</div>
frix()対象のwidthをパーセント(%)で指定して可変にしたい時は、data-frix-widthに記述します。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#aside").frix(); )};
</script>
<div id="aside" data-frix-width="25%">
・・・
</div>
位置の固定が動作するwidthを指定します。レスポンシブウェブデザイン等で特定の幅以下(以上)でfrix()を動作させない時に利用します。
<script src="jquery.min.js"></script>
<script src="jquery.frix.min.js"></script>
<script>
$(document).ready( function() { $("#aside").frix(); });
</script>
<div id="aside" data-frix-width="25%" data-frix-min-width="320">
・・・
</div>
#main { width : 73%; float : left; }
#aside { float : right; }
@media screen and (max-width:320px) {
#main { width : 100%; float : none; }
#aside { width : 100% !important; float : none; }
/*frix()対象要素はfrix()によりstyle="width:"を付与されているため!importantによる上書きが必要です*/
}