ログイン
問題3

スクロールについてくるメニューを作ろう

アイコン画像

問題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の第二引数に数字をいれることでアニメーションにかかる時間を調節できます。
ログインして解答を見る
jQueryAnimationを学ぶなら現役エンジニア監修「甲賀コース」
キャンペーン

閉じる