スクロールにあわせてサイドバーを追随させたい場合のjQueryのコードを紹介します。
ライブラリもあるので、コードを書くのがめんどうな人はそちらを使用してもいいかもしれません。
jQueryライブラリ
jQuery Ex Flex Fixed
jQueryコード
仮にjquery.follow.jsと名前をつけて保存
$(function(){
var obj = $("#side");
var offset = $(obj).offset();
var topPadding = 20;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$(obj).stop().animate({
duration: 'fast',
marginTop: $(window).scrollTop() - offset.top + topPadding
});
} else {
$(obj).stop().animate({
marginTop: 0
});
}
});
});
2行目[obj]は追従させる要素のIDを指定します。例:#side
4行目[topPadding]は追従させる要素の位置調整を行います。例:20
8行目[duration]は要素が動くスピードを指定します。例:fast
HTML
head内
<link href="style.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="jquery.follow.js"></script>
※この時、CSSをjQueryより先に読み込んでおかないと動かないので注意
body内
<div id="content"> <div id="side">サイドバー</div> </div>
CSS
#content {
position: relative;
}
#side {
position: absolute;
top: 20px;
left: 0;
width: 200px;
}







最近のコメント