Javascript Jquery DOM操作 Classの付与

やりたいこと

・クリックイベントでハンバーガーメニューをクリックしたらタイトルが消える

ハンバーガーメニューを閉じたらタイトルが出る

 

方法

ハンバーガーメニューをクリックイベントをすると、

・メニューにクラスopenが追加→メニュー表示

・タイトルにクラスtitle-closeが追加→タイトル非表示

 

ハンバーガーメニューの閉じるを押すと

・メニューのクラスopenが削除→メニュー非表示

・タイトルのクラスtitle-closeが削除→タイトル表示

 

コード

 

// ハンバーガーメニュークリック時タイトルを消す&閉じる時出すjs
 
let h1 = document.querySelector('.header-title-area h1');
if(
document.querySelector('.open-menu').onclick = function(){
h1.classList.add('nav-close') ;
});

if(
document.querySelector('.close-menu').onclick = function(){
h1.classList.remove('nav-close') ;
});
// ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

ポイント

・classやid属性はquerySelector()内では('.class名 ')や('id名')で記入でOK

・クリックをした時にクリックした要素にクラスを追加する方法は

 

h1.classList.add('nav-close') ; 

解説

事前にletで定義したh1

let h1 = document.querySelector('.header-title-area h1');

をh1.classLIst.add('追加したいクラス名'); ※この時は「.」不要

で任意のクラスを追加可能

 

ちなみに同様のクリックイベントはjqueryだと


$(document).ready(function() {
$('.open-menu').on('click', function() {
$('.overlay').addClass('open');
$('.header-title').addClass('nav-close');

});
 
$('.close-menu').on('click', function() {
$('.overlay').removeClass('open');
$('.header-title').removeClass('nav-close');

});
});

上記で実装可能

 

open-menuをクリックすると.overlayクラスにopenクラスを追加

header-titleクラスにnav-closeを追加

下はaddClassをremoveClassにし削除の記述をしている