0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プロゲート【JQuery中級】modal,hover,addclass,removeclass,hasclass

Last updated at Posted at 2020-10-28

progate:JQuery中級コース

  • jQueryは.js形式
  • HTMLファイルで、と書くことで、jQueryのコードを記述するファイルが読み込まれる
  • scriptはbodyの直前に書くことで、WEBページの表示速度をより早めることが出来ます。
script.js
// JQuery基本の方
$(document).ready(function(){

});

// 略
$(function(){ });
index.html

<!-- headタグでjqueryの読み込み -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8">
  </script>


<!-- bodyタグでjsファイルの読み込み -->
  <script  src="script.js" type="text/javascript" charset="utf-8">
  </script>


モーダルの表示/非表示

モーダルを表示させる手順
①htmlにモーダルを作る
②cssを整えて、display: none;で非表示にする
③script.jsでclickイベントを作る(fadeIn)

script.js
$(‘#login-show).click(function(){
    $(login-modal).fadeIn();
  });

モーダルを隠す手順
①htmlにモーダルを閉じるボタンを作る
③script.jsでclickイベントを作る(fadeOut)

※共通で使う場合はclassを使う

hover機能

 hover機能を使う手順
①htmlでclassを追加
②script.jsでhoverイベントを作成

script.js
  $('.lesson-hover').hover(
    function(){
      
    },
    function(){
      
    }
    
    );
// hoverの引数はカーソルを乗せた時と外した時で2つ作る

addClassとremoveClass

※addClassとremoveClassの引数にドットは不要

script.js
$('.lesson-hover').hover(
    function() {
      $(this).find('.text-contents').addClass('text-active');
    },
    function() {
		$(this).find('.text-contents').removeClass('text-active');
      
    }
  );

アコーディオン

①答えの部分はCSSで非表示。
②3つの質問部分には同一のclass名を付与
③それらのclickイベントを作成。質問をクリックした時に、対応する答えを隠すのか表示するのかを判断するため、openというclassを用います。
答えの表示中はopenをつけ、非表示中は外す。

hasClassメソッド

hasClassメソッドは、引数に指定したクラスを、オブジェクトが持っているか判定するときに使用します。オブジェクトがそのクラスを持っていればtrue、持っていなければfalseを返します。-progate-

script.js
$('.faq-list-item').click(function(){ // clickイベント
    var $answer=$(this).find('.answer'); // 変数の定義
    
    if($answer.hasClass('open')){
      $answer.removeClass('open') // $answerにopenがあった場合の処理
    }else{
      $answer.addClass('open'); //openがなかった場合の処理
    }
    
  });

アコーディオン完成形

script.js

  // FAQのアコーディオン
  $('.faq-list-item').click(function() {
    var $answer = $(this).find('.answer');
    if($answer.hasClass('open')) { 
      $answer.removeClass('open'); 

      $answer.slideUp(); 
      $(this).find('span').text('+');  
    } else {
      $answer.addClass('open'); 
      $answer.slideDown();
      $(this).find('span').text('-');
      
    }
  });
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?