問題
3
jQuery
スクロールについてくるメニューを作ろう
jQueryの問題に挑戦しよう!
問題
「スクロールについてくるメニューを作ろう」
今回はデモのようにメニュー一覧がスクロールしてもついてくるようにしましょう!
あらかじめエディタに書くコード
<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¥
期待する画面
解答と解説(スクロールについてくるメニューを作ろう)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
まずwindowというのは表示されている部分という認識でいいと思います。そしてそれがスクロールされることをトリガーとしてscrollTopでwindowの高さを取得し、それを変数に入れておきます。そしてmenuのcssをanimateを使ってtop:y(animateのcssは数字だけ与えられるとpxを自動でつけてくれる)とすることで位置を変更し、animateの第二引数に数字をいれることでアニメーションにかかる時間を調節できます。