イセンチュートリアルサイト
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
TOP JS メニュー タブメニュー

JS

タブメニュー

  • カテゴリー:メニュー

    HTML

    <div class="wrapper">
    	<ul class="tab">
    		<li><a href="#lunch">ランチ</a></li>
    		<li><a href="#drink">ドリンク</a></li>
    		<li><a href="#dinner">ディナー</a></li>
    	</ul>
    
    	<div id="lunch" class="area">
    		<h2>ランチ</h2>
    		<ul>
    			<li>ガパオライス</li>
    			<li>ミートソーススパゲティ―</li>
    			<li>ハンバーグ定食</li>
    		</ul>
    	</div><!--/area-->
    
    	<div id="drink" class="area">
    		<h2>ドリンク</h2>
    		<ul>
    			<li>ウーロン茶</li>
    			<li>オレンジジュース</li>
    			<li>ジンジャーエール</li>
    		</ul>
    	</div><!--/area-->
    
    	<div id="dinner" class="area">
    		<h2>ディナー</h2>
    		<ul>
    			<li>カレーライス</li>
    			<li>ドリア</li>
    			<li>グラタン</li>
    		</ul>
    	</div><!--/area-->
    </div><!--wrapper-->
    

     

    CSS

    /* エリアの表示非表示と形状 */
    .area {
    	display: none; /* はじめは非表示 */
    	opacity: 0; /* 透過0 */
    	background: #fff;
    	padding: 50px 20px;
    }
    
    /* areaにis-activeというクラスがついた時の形状 */
    .area.is-active {
    	display: block; /* 表示 */
    	animation-name: displayAnime; /* ふわっと表示させるためのアニメーション */
    	animation-duration: 2s;
    	animation-fill-mode: forwards;
    }
    
    @keyframes displayAnime {
    	from {
    		opacity: 0;
    	}
    	to {
    		opacity: 1;
    	}
    }
    
    
    /*========= レイアウトのためのCSS ===============*/
    
    body {
    	background: #eee;
    }
    
    ul {
    	list-style: none;
    }
    
    a {
    	color: #333;
    	text-decoration: none;
    }
    
    .wrapper {
    	width: 100%;
    	max-width: 960px;
    	margin: 30px auto;
    	background: #fefefe;
    }
    
    .area h2 {
    	font-size: 1.3rem;
    	margin: 0 0 20px 10px;
    }
    
    .area li {
    	padding: 10px;
    	border-bottom: 1px solid #ddd;
    }
    

     

    JS

    //任意のタブにURLからリンクするための設定
    function GethashID (hashIDName) {
    	if(hashIDName){
    		//タブ設定
    		$'.tab li').find('a').each(function() { //タブ内のaタグ全てを取得
    			var idName = $(this).attr('href'); //タブ内のaタグのリンク名(例)#lunchの値を取得
    			if(idName == hashIDName) { //リンク元の指定されたURLのハッシュタグ(例)https://example.com/#lunch←この#の値とタブ内のリンク名(例)#lunchが同じかをチェック
    				var parentElm = $(this).parent(); //タブ内のaタグの親要素(li)を取得
    				$'.tab li').removeClass("active"); //タブ内のliについているactiveクラスを取り除き
    				$(parentElm).addClass("active"); //リンク元の指定されたURLのハッシュタグとタブ内のリンク名が同じであれば、liにactiveクラスを追加
    				
    				//表示させるエリア設定
    				$(".area").removeClass("is-active"); //もともとついているis-activeクラスを取り除き
    				$(hashIDName).addClass("is-active"); //表示させたいエリアのタブリンク名をクリックしたら、表示エリアにis-activeクラスを追加
    			}
    		});
    	}
    }
    
    
    //タブをクリックしたら
    $('.tab a').on('click', function() {
    	var idName = $(this).attr('href'); //タブ内のリンク名を取得
    	GethashID (idName); //設定したタブの読み込みと
    	return false; //aタグを無効にする
    });
    
    // 上記の動きをページが読み込まれたらすぐに動かす
    $(window).on('load', function() {
    	$('.tab li:first-of-type').addClass("active"); //最初のliにactiveクラスを追加
    	$('.area:first-of-type').addClass("is-active"); //最初の.areaにis-activeクラスを追加
    	var hashName = location.hash;//リンク元の指定されたURLのハッシュタグを取得
    	GethashID (hashName);//設定したタブの読み込み
    });
    

     

    引用元:https://coco-factory.jp/ugokuweb/move01/5-4-1/

    投稿日:2022年04月07日
次のページ
前のページ

アーカイブ

  • CSS (117)
    • スクロールダウン (8)
    • テキストナビゲーション (11)
    • ボタン (52)
    • メニュー (1)
    • 動画 (2)
    • 検索 (3)
    • 画像リンクの動き (23)
    • 背景の動き (17)
  • Illustrator (8)
  • JS (93)
    • アコーディオンパネル (2)
    • アニメーション (1)
    • エリアの動き (7)
    • ギャラリー (6)
    • グラフ (7)
    • スライド (9)
    • テキストの動き (17)
    • ニュースティッカー (1)
    • ページトップリンク (9)
    • ページ内リンク (2)
    • メニュー (28)
    • モーダルウィンドウ (1)
    • ローディング (3)
  • Photoshop (1)
  • PHP (20)
  • WordPress (4)
    • プラグイン (2)
    • リンク (1)
  • お客様観覧用 (11)
    • WEB制作プラン (1)
    • アニメーション (8)
    • グローバルナビゲーション (1)
    • スライド (1)
  • サーバー (6)
    • CPI (1)
  • 未分類 (6)
  • 法律 (2)
    • 医療法 (1)
    • 柔道整復師法 (1)
TOP
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
© 2022 isen-print.