読者クリックイベントJavascriptでテキストの変更は、最初にどこを理解するとよいですか?
木村対象要素を取得する処理、動作を始める条件、見た目を変える処理の三つに分けると、コードの流れを追いやすくなります。
読者実際に試すときは、手順だけでなく確認方法も知っておいた方がよいでしょうか?
木村はい。この記事では、作業の目的から実装後の確認までを順番に整理します。自分の環境と照らし合わせながら読み進めてください。
実装のデザイン
実装のデザインでは、【クリックイベント】 Javascriptでテキストの変更を理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。
- タイトル①
- タイトル②
- タイトル③
<section class="test">
<div class="test__inner wrap flex-column">
<div class="test__select">
<ul class="flex-row">
<li class="active">タイトル①</li>
<li>タイトル②</li>
<li>タイトル③</li>
</ul>
<div class="test__txt">
<p>タイトル①テキスト</p>
</div>
<div class="test__txt d-none">
<p>タイトル②テキスト</p>
</div>
<div class="test__txt d-none">
<p>タイトル③テキスト</p>
</div>
</div>
</div>
</section>.d-none {
display: none;
}
.flex-row {
display: flex;
align-items: center;
}
.flex-column {
display: flex;
flex-direction: column;
}
.test ul {
color: #192653;
line-height: 1.2;
text-align: center;
width: 100%;
justify-content: space-between;
}
@media screen and (min-width: 1024px) {
.test ul {
font-size: 30px;
}
}
.test li {
background-color: #FDE948;
border-radius: 20px 20px 0 0;
display: flex;
width: 30%;
height: 50px;
align-items: center;
justify-content: center;
}
@media screen and (min-width: 1024px) {
.test li {
height: 90px;
}
}
.test li.active {
color: #FFFFFF;
background-color: #192653;
}
.test__select {
margin-top: 27px;
}
@media screen and (min-width: 1024px) {
.test__select {
margin-top: 40px;
}
}
.test__txt {
padding: 20px;
border: #192653 solid 1px;
border-radius: 0 0 20px 20px;
height: 458px;
}
@media screen and (min-width: 1024px) {
.test__txt {
border: #192653 solid 3px;
font-size: 20px;
}
}class Onclick {
constructor() {
this._click();
}
_click() {
// すべてのタブとコンテンツを取得し、変数に格納
var testTabs = document.querySelectorAll(".test__select ul.flex-row li");
var testContents = document.querySelectorAll(".test__txt");
testTabs.forEach(function (tab, index) {
tab.addEventListener("click", function () {
// すべてのタブから "active" クラスを削除
testTabs.forEach(function (tab) {
tab.classList.remove("active");
});
// クリックされたタブに "active" クラスを追加
this.classList.add("active");
// すべてのコンテンツを非表示にする
testContents.forEach(function (content) {
content.classList.add("d-none");
});
// クリックされたタブに対応するコンテンツを表示する
testContents[index].classList.remove("d-none");
});
});
}
}
new Onclick();実装のデザインで押さえたいポイント
実装のデザインは、コードや設定だけを切り離して覚えるより、何を変えるための処理なのかを確認してから試すと理解しやすくなります。変更前の状態を控え、作業を一つずつ反映すると、問題が起きた場所も特定しやすくなります。
実装のデザインの確認方法
ブラウザーのコンソールにエラーがないかを確認し、クリックやスクロールを繰り返してもイベントが重複しないかを試します。スマートフォン幅とキーボード操作も確認してください。
応用編
応用編では、【クリックイベント】 Javascriptでテキストの変更を理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。
ここからはWordPress開発において、先述したコードをブロックエディタと連動させてコンテンツ部分をカスタム投稿タイプで編集する方法について解説します。カスタムHTML内でも使用できるようにショートコードに組み込んでいます。オリジナルテーマ開発を手掛けている方の参考になれば幸いです。function my_custom_shortcode()
{
ob_start();
$args = array(
'post_type' => 'test',
'order' => 'ASC'
);
$my_query = new WP_Query($args);
$post_counter = 0; // カウンター変数を初期化
while ($my_query->have_posts()) : $my_query->the_post();
$post_counter++; // 各投稿でカウンターをインクリメント
// 最初の投稿以外に 'd-none' クラスを追加
$class = $post_counter > 1 ? 'test__txt d-none' : 'test__txt';
echo '<div class="' . $class . '">';
the_content();
echo '</div>';
endwhile;
wp_reset_postdata();
return ob_get_clean();
}
add_shortcode('my_test_shortcode', 'my_custom_shortcode');応用編で押さえたいポイント
応用編は、コードや設定だけを切り離して覚えるより、何を変えるための処理なのかを確認してから試すと理解しやすくなります。変更前の状態を控え、作業を一つずつ反映すると、問題が起きた場所も特定しやすくなります。
応用編の確認方法
ブラウザーのコンソールにエラーがないかを確認し、クリックやスクロールを繰り返してもイベントが重複しないかを試します。スマートフォン幅とキーボード操作も確認してください。
まとめ
- デザインを実装する際には、タブとコンテンツ部分を分けて考えると、作業がしやすい
- コンテンツを表示させるクラスと非表示するクラスをそれぞれ準備する
- 上記をJavascriptで付与し、または削除する
- WordPressのショートコードに組み込むことも可能である
- CSSで通常のデザインと、それぞれのクラスが付与した際のデザインを記述しておく
- コードの生成にはChatGTPが便利である

MEMBER COMMENTS
コメント(0件)