国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル JavaScriptを使わないシンプルなアコーディオン

JavaScriptを使わないシンプルなアコーディオン

Dec 15, 2024 am 06:32 AM

この記事は元々 Rails Designer で公開されたものです


HTML と CSS が長年にわたって大幅に改良されていることは周知の事実です。 JavaScript を書くのが楽しくなりましたが、できる限りJavaScript を書いています。

JavaScript を必要としないものの 1 つは、典型的なアコーディオンです。これは、Vue、Alpine、Stimulus などの JS フレームワークを使用して簡単に作成できる種類のコンポーネントですが、最も基本的なバージョンでは、それらはどれも必要ありません。見た目を良くするために必要なのは CSS だけです。

この例は私が目指しているものです。典型的な FAQ リストのスタイルである必要はないことがわかります。このようなセクションに使用しても、まったく問題なく機(jī)能します。

Simple accordion without JavaScript

この記事の引用元:

  • 基本;
  • 視覚的な面白さを追加します;
  • あまり知られていない高度な Stimulus 機(jī)能を使用して、プログレッシブ機(jī)能強(qiáng)化を冷卻します。

基本

最も基本的なバージョンは次のようになります:

<details>
  <summary>
    Show me more
  </summary>

  This is more!
</details>

<details>
  <summary>
    Show me even more
  </summary>

  This is even more!
</details>

これがどのように見えるかです:

実際の例については、元の記事をご覧ください。 ?

あまり美しくありませんが、機(jī)能します!

詳細(xì)/概要屬性

詳細(xì)/概要要素には興味深いトリックがいくつかあります。

  • open - 屬性;デフォルトで 1 つまたは複數(shù)の要素を開くようにこの屬性を設(shè)定できます (以下の CSS にも使用されます);
  • 名前屬性を追加します。これにより、details 要素を 1 つだけ開くことができます。 1 つを開くと、他のすべても自動(dòng)的に閉じます。
<details name="more" open>
  <summary>
    Show me more
  </summary>

  This is more!
</details>

<details name="more">
  <summary>
    Show me even more
  </summary>

  This is even more!
</details>

チェックしてください:

実際の例については、元の記事をご覧ください。 ?

視覚的な面白さをさらに加える

デフォルトでは見た目があまり良くないので、CSS を追加してアプリに合わせて調(diào)整しましょう。重要な部分は次のとおりです:

  • [&::-webkit-details-marker]:hidden;これにより、デフォルトのシェブロンが非表示になります;
  • グループオープン/詳細(xì):回転-180;これにより、カスタム山形アイコンがその狀態(tài)に基づいて回転します。

Tailwind CSS を使用した完全バージョンは次のようになります:

<details>



<p>This is how it looks:</p>

<blockquote>
<p>View the original article to live examples. ?</p>
</blockquote>

<h2>
  
  
  Progressive enhancements
</h2>

<p>A <strong>toggle</strong> event is dispatched on the <strong>details</strong>-element whenever it state changes. So you could listen for it like this:<br>
</p>

<pre class="brush:php;toolbar:false">details.addEventListener("toggle", (event) => {
  if (details.open) {
    // Do something
  } else {
    // Do something else
  }
});

これは何に使えますか?たとえば、details 要素の狀態(tài)をブラウザーの localStorage に保存して、全體にわたって永続化します。小さな Stimulus コントローラーを使って確認(rèn)してみましょう:

// app/javascript/controllers/accordion_controller.js
import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  connect() {
    this.element.open = localStorage.getItem(this.element.id) === "open";

    this.#attachEventListeners();
  }

  // private

  #attachEventListeners() {
    this.element.addEventListener("toggle", (event) => {
      if (this.element.open) {
        localStorage.setItem(this.element.id, "open");
      } else {
        localStorage.removeItem(this.element.id);
      }
    });
  }
}

別の例が必要ですか?典型的な FAQ リストのスタイルは、価格設(shè)定ページで確認(rèn)できます。

プレーン HTML を使用してアコーディオンを追加するのは非常に簡単です。最初は非常にシンプルで、次に CSS で視覚的な面白みを追加し、最後にシンプルな Stimulus コントローラーで段階的な拡張を加えることができます。
Simple accordion without JavaScript

以上がJavaScriptを使わないシンプルなアコーディオンの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptのマスターコメント:包括的なガイド JavaScriptのマスターコメント:包括的なガイド Jun 14, 2025 am 12:11 AM

ContureCrucialInjavascript formantaining andFosteringCollaboration.1)TheypindeBugging、Onboarding、およびUnderstandingCodeevolution.2)usesingle-linecomments for quickexplanations andmulti-linecomments fordeTeTaileddespransions.3)BestPractsinclud

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JavaScriptデータ型:ディープダイビング JavaScriptデータ型:ディープダイビング Jun 13, 2025 am 12:10 AM

javascripthasseveralprimitivedatypes:number、string、boolean、undefined、null、symbol、andbigint、andnon-primitiveTypeslike objectandarray

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼埂¥长欷椁沃匾圣荪ぅ螗趣蛄?xí)得すると、一般的な間違いを効果的に回避できます。

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

See all articles