ログイン

問題10 jqueryでボタンを作ろう1

jQueryAnimationの問題

jQueryAnimation

jqueryでボタンを作ろう1

問題

今回はクリックするとその点から円が広がっていくようなアニメーションを作りましょう!

自分の環境に書くコード

              <div class="btn">ここをクリック<span></span></div>
¥HTML¥
            
              .btn{
  position: relative;
  width: 200px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
  border: 2px solid black;
  overflow: hidden;
}
.btn span{
  position: absolute;
  background-color: #bbbbbb;
  border-radius: 50%;
  transform: translate(-50%,-50%);
  opacity
¥CSS¥
            

期待する画面

コードのアイコン

解答ソースコード

              $(function () {
  $(".btn").click(function (e) {
    $(this).find("span").css({width:0,height:0});
    var position = $(this).offset(),
    x = e.pageX - position.left,
    y = e.pageY - position.top;
    $(this).find("span").css({ "top": y, "left": x }).animate({width:"400px",   height:"400px"});
  });
});
¥JavaScript¥
            
答えのアイコン

解説

btnがクリックされた時をトリガーとしてfunctionの引数にeを与えてthisからoffsetでクリックされたbtnの位置を取得し、それを変数に代入し、そこからleft、topによってx軸、y軸方向の位置を取得し、クリックされた位置をe.pageX、e.pageYで取得しそれぞれ先ほど得られたbtn自体の位置を引いてあげればボタン内左上からの距離を得られる。それをfindでspanを指定し、cssでtop、leftを与えてあげ、最後にanimateで円が大きくなっていくように見せるためにwidthとheightを設定します。この大きさは自由に決めてください。補足なのですが、今回は2回目以降も同じようにアニメーションが動くように処理の最初にwidthとheightを0にして初期化しています。
ログインして解答を見る
完了にする!
LINEの友達追加でお役立ち動画をGET!!