クリックしたときにカード内の文字を表示/非表示する
・目次
1.目的
・日・英神経衰弱のクリックした時の処理の一部を作成する。
・クリックした時に、クリックしたカードに文字を表示/非表示する。
2.プログラム
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>タイトル</title> <!-- JQuaryの追加 --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <style> /* カード設定 CSS */ .card{ /* boxのサイズを指定 */ width: 8em; height: 10em; /* boxの色をskyblueに指定 */ background:skyblue; /* boxの上のカーソルを指マークに指定 */ cursor: pointer; /* boxの外側の余白を指定 */ margin: 1em 1em; /* 中央にテキストを表示 */ text-align: center; /* 行の高さを設定 */ line-height: 10; } /*要素を横並びにする*/ .flexset{ display: flex; } </style> </head> <body> <div class = "flexset"> <div class = "card" id="card00"></div> <div class = "card" id="card01"></div> <div class = "card" id="card02"></div> <div class = "card" id="card03"></div> </div> <div class = "flexset"> <div class = "card" id="card10"></div> <div class = "card" id="card11"></div> <div class = "card" id="card12"></div> <div class = "card" id="card13"></div> </div> <script> const CARD_HID = 0; const CARD_DISP = 1; const CARD_LINE = 2; //カードの行数 const CARD_COLUMN = 4; //カードの列数 //オブジェクトの用意 // 英語、日本語、クリックした時の表示,非表示処理 const word = { jap: "日本語", eng: "English", } window.onload = function () { let cnt; ///<カウント用変数 //カードidの取得と配列への代入 for(cnt=0;cnt<CARD_COLUMN;cnt++){ ClickSet($("#card0"+cnt)); ClickSet($("#card1"+cnt)); } function CardClick(cardid){ //カード表示/非表示初期化 let cardsetf = CARD_HID; /// カードクリックした時 cardid.on("click",function(){ //表示だったら、非表示に変更 if(cardsetf == CARD_DISP){ ///カードを非表示に変更 cardsetf = CARD_HID; ///カードの表示を消す cardid.text(""); } //非表示だったら、表示に変更 else{ ///カードに日本語を表示 cardsetf = CARD_DISP; ///カードに日本語を表示 cardid.text(word.jap); } }) } //クリックされた時の表示/非表示処理 function ClickSet(cardid){ if(cardid >=CARD_COLUMN){ //1行辺りのカード枚数を超えていたら終了 console.log("ClickSet関数:無効な数値の代入"); return; } CardClick(cardid); } } </script> </body> </html>
実行結果
ーーーーー
関連記事