ログイン

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

jQueryAnimationの問題

jQueryAnimation

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

問題

今回はデモのようにメニュー一覧がスクロールしてもついてくるようにしましょう!

自分の環境に書くコード

              <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の第二引数に数字をいれることでアニメーションにかかる時間を調節できます。
ログインして解答を見る
完了にする!
LINEの友達追加でお役立ち動画をGET!!