問題3:スクロールについてくるメニューを作ろう
今回はデモのようにメニュー一覧がスクロールしてもついてくるようにしましょう!
あらかじめエディタに書くコード
<ul class="menu">
<li>メニュー</li>
<li>ホーム</li>
<li>コンタクト</li>
<li>アクセス</li>
<li>ニュース</li>
</ul>
¥HTML¥
body{
height: 2000px;
}
.menu{
border: 2px solid black;
width: 200px;
list-style: none;
text-align: center;
padding: 0;
position: absolute;
top: 0;
}
li:first-of-type{
border-bottom: 2px solid black;
background-color: #eeeeee;
}
li:not(:first-of-type){
cursor: pointer;
}
¥CSS¥
期待する画面
解答ソースコード
$(function () {
$(window).scroll(function(){
var y=$(this).scrollTop();
$(".menu").animate({top:y},50);
});
});
¥JavaScript¥
解説
まずwindowというのは表示されている部分という認識でいいと思います。そしてそれがスクロールされることをトリガーとしてscrollTopでwindowの高さを取得し、それを変数に入れておきます。そしてmenuのcssをanimateを使ってtop:y(animateのcssは数字だけ与えられるとpxを自動でつけてくれる)とすることで位置を変更し、animateの第二引数に数字をいれることでアニメーションにかかる時間を調節できます。
ログインして解答を見る
#忍者CODE無料問題集で活動を記録しよう
完了にする!