LoginSignup
0
2

More than 3 years have passed since last update.

デイトラWeb制作コース中級編DAY4の学び

【この記事に書いてあること】

 【学び】

1

【jQueryの解説】

<jQueryとは>

JavaScriptのライブラリで、JavaScriptをより簡単に記述できるようにしたもの。
主にWebサイトやWebアプリケーションで使用されている。

<jQueryのメリット>

① 短いコードで書ける
② ブラウザごとの対応がいらない
③ 便利なライブラリがたくさんある

2

【jQueryの書き方】

<jQueryを書くときの型>

① jQueryのライブラリ本体を最初に読み込む
② jQueryで書いたファイルを読み込む

maiin.js

<!-- jQueryのライブラリー -->
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>

<!-- jQueryで書いたファイル-->
<script src="js/practice.js"></script>

<jQueryの書き方のルール>

ポイント
① $マークで始まり
② function()で囲む
③ $("主語").動詞("補語")の文法で書く
 

maiin.js
$(function() {  
  //この中にプログラムを書いていく
});

*イメージは

主語: セレクタ(id,class,tagの名前など)

動詞: メソッド(どうしたいのか)

補語: メソッドによって追加で条件式を足す(補語を書かなくていい時もある)

<jQueryでのセレクタの指定方法>

① タグ名で指定する:$("タグ名")
② クラス名で指定する:$(".クラス名")
③ ID名で指定する:$("#id名")

<jQueryでプログラムを書いてみた>

maiin.js
$(function(){
  const status = $('#user-status').val(); //val() = フォームの入力値(value属性の値)を取得する
  const button = $('#register');

// HTMLデータから、statusとbuttonの値を取得できた

if(status === 'visiter'){
   button.text('登録'); //.text('変更したいテキスト') =    テキストを''内の文字列に変更する
   button.removeClass('btn-login'); //.removeClass(class属性値) = class属性を削除する
   button.addClass('btn-register'); //.addClass(class属性値) = class属性を追加する
}else if(status === 'user'){
 button.text('ログイン'); //.text('変更したいテキスト') =  テキストを''内の文字列に変更する
 button.removeClass('btn-register'); //.removeClass(class属性値) = class属性を削除する
 button.addClass('btn-login'); //.addClass(class属性値) = class属性を追加する
 $('.login-area').append('<a href="https://tokyofreelance.jp/" class="btn btn-withdraw">退会</a>')
 //.append('要素') = 要素の最後にHTMLを挿入する
}
});

3

【メソッドを使用した要素の指定】

<fund()かchildren()の違い>

子要素の中から探すときはこの2つのどちらかを使用する!

① .find('セレクタ')
対象要素の子孫要素から、セレクタに該当するもの取得する

maiin.js
var texts = $('#js-for-web').find('p');
console.log(texts[0]);

//変数を「texts」と名付けて、id名「js-for-web」から、pタグの0番目を表示させる

findは子孫要素全体から探してくるので、どの階層を指定してもOK!

② .children('セレクタ')
対象要素の直属の子要素から、セレクタに該当するものを取得する

maiin.js
 var texts = $('#js-for-web').children('p');
console.log(texts[0]); 

//変数を「texts」と名付けて、id名「js-for-web」から、pタグの0番目を表示させる

* childrenは直属の子要素からしか探せないので、孫要素の指定はできない!

4

【イベント処理】

<イベントの構文>

$('セレクタ').イベント名(function(){ });

<click>
ボタンがクリックされたときの処理

maiin.js
「#buttonをクリックすると「#service-titleの文字がデイトらに変わる処理


$("#button").click(function(){ 
 //.click() = 対象要素をクリックする
 $("#service-title").text("デイトラ") 
 //.text('変更したいテキスト') = テキストを''内の文字列に変更する
});

<hover>

hoverイベントはfunctionをコンマ区切りで2個続けて書く。
1 「ホバーされたときの処理」
2 「ホバーが外れたときの処理」

maiin.js

 $('セレクタ名').hover( 
    function() {
    //ここにホバーされたときの処理を書く
    },
    function() {
    //ここにホバーが外れたときの処理を書く
    }
  ); 




  $("#service-title").hover(
    function() {
     $(this).css('color','orange');
     //.css(プロパティ名,値) = 指定したCSSプロパティの値を設定する
    },
    function() {
     $(this).css("color","#082B48");
   //.css(プロパティ名,値) = 指定したCSSプロパティの値を設定する
    }
  );

5

【アニメーション】

jQueryにはページに動きをつける様々なアニメーションが用意されている。

参考サイト: アニメーション一覧

<スライドのように開閉して表示>

maiin.js

 $('#service-title').hover(
  function(){
    $('#register').slideUp();
  },
  function(){
    $('#register').slideDown();
  }
); 

 /* [#service-title] に
  ホバーしたとき、[register]が「slideUp」し、
  ホバーを解除したとき、[register]が「slideDown」する */

* Q&Aで、Qにホバーした時に、Aが出てくる仕様などに使う

<ふわっと浮き上がる表示>

maiin.js

 $('#service-title').hover(
  function(){
    $('#register').fadeIn();
  },
  function(){
    $('#register').fadeOut();
  }
);

/* [#service-title] に
  ホバーしたとき、[register]が「fadeIn」し、
  ホバーを解除したとき、[register]が「fadeOut」する */

* クリックしたとき、写真がふわっと表示する仕様などに使う(モーダル)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2