国产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 つを開くと、他のすべても自動的に閉じます。
<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)

JavaScript vs. Java:どの言語を?qū)Wぶべきですか? JavaScript vs. Java:どの言語を?qū)Wぶべきですか? Jun 10, 2025 am 12:05 AM

JavaScriptisidealforwebdevelopment,whileJavasuitslarge-scaleapplicationsandAndroiddevelopment.1)JavaScriptexcelsincreatinginteractivewebexperiencesandfull-stackdevelopmentwithNode.js.2)Javaisrobustforenterprisesoftwareandbackendsystems,offeringstrong

JavaScriptで使用するコメントシンボル:明確な説明 JavaScriptで使用するコメントシンボル:明確な説明 Jun 12, 2025 am 10:27 AM

JavaScriptでは、シングルラインコメント(//)またはマルチラインコメント(//)を選択することは、コメントの目的とプロジェクトの要件に依存します。 2。詳細(xì)なドキュメントには、マルチラインコメントを使用します。 3。コメントスタイルの一貫性を維持します。 4。過剰な承認(rèn)を避けます。 5.コメントがコードと同期して更新されていることを確認(rèn)してください。適切な注釈スタイルを選択すると、コードの読みやすさと保守性を向上させることができます。

JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します Jun 11, 2025 am 12:04 AM

はい、javascriptcommentsは不必要に使用されています。

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

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

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

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

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 13, 2025 am 12:10 AM

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

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

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

See all articles