ホームページ ウェブフロントエンド jsチュートリアル JavaScript を使用して、コンテナーに限定しながらタブ コンテンツの指スライドによる切り替え効果を実現するにはどうすればよいですか?

JavaScript を使用して、コンテナーに限定しながらタブ コンテンツの指スライドによる切り替え効果を実現するにはどうすればよいですか?

Oct 20, 2023 am 11:31 AM
タブ JavaScriptの実装 指スライドスイッチングエフェクト コンテナ内の制限

如何使用 JavaScript 实现选项卡内容的手指滑动切换效果同时限制在容器内?

JavaScript を使用して、コンテナーに限定しながらタブ コンテンツの指スライドによる切り替え効果を実現するにはどうすればよいですか?

タブは、同じ領域に異なるコンテンツを表示するように切り替えることができる一般的な Web ページ レイアウトです。従来のクリック切り替え方式と比較して、指をスライドさせる切り替え効果は、モバイルデバイス上でよりフレンドリーで直感的です。この記事では、JavaScriptを使用してタブコンテンツの指スライド切り替え効果を実装し、コンテナに限定する方法を紹介します。

まず、タブのコンテンツをホストするための HTML 構造が必要です。タブに 3 つのラベルがあり、各ラベルがコンテンツ領域に対応すると仮定します。HTML 構造は次のようになります。

<div class="container">
  <div class="tabs">
    <div class="tab" id="tab1">标签1</div>
    <div class="tab" id="tab2">标签2</div>
    <div class="tab" id="tab3">标签3</div>
  </div>
  <div class="content">
    <div class="panel" id="panel1">内容1</div>
    <div class="panel" id="panel2">内容2</div>
    <div class="panel" id="panel3">内容3</div>
  </div>
</div>
ログイン後にコピー

上記のコードでは、.tabs がタブを運ぶために使用されます。 label 、 .content はタブのコンテンツを保持するために使用され、 .tab.panel は特定のタブのラベルとコンテンツです。

次に、CSS を使用して、コンテナのサイズ、タブのラベルのスタイル、コンテンツ領域のスタイルなど、タブ コンテナのスタイルを設定する必要があります。指をスライドさせる効果を実現するには、overflow:hidden を使用してコンテナのスコープを超えたコンテンツを非表示にする必要もあります。 CSS スタイルは次のようになります。

.container {
  width: 300px;
  height: 200px;
  overflow: hidden;
}

.tabs {
  display: flex;
}

.tab {
  flex: 1;
  text-align: center;
}

.content {
  width: 300%;
  display: flex;
}

.panel {
  flex: 1;
  text-align: center;
}
ログイン後にコピー

次に、JavaScript を使用して指のスライド切り替え効果を実装し、それをコンテナーに制限します。 touchstarttouchmovetouchend イベントを使用して、指のスライド操作をリッスンします。

const container = document.querySelector('.container');
const tabs = document.querySelectorAll('.tab');
const panels = document.querySelectorAll('.panel');

let startX = 0;
let currentX = 0;

container.addEventListener('touchstart', (event) => {
  startX = event.touches[0].clientX;
});

container.addEventListener('touchmove', (event) => {
  event.preventDefault();
  currentX = event.touches[0].clientX;
});

container.addEventListener('touchend', () => {
  const deltaX = currentX - startX;
  const threshold = container.offsetWidth / 3;

  if (deltaX > threshold && currentIndex > 0) {
    currentIndex--;
  } else if (deltaX < -threshold && currentIndex < tabs.length - 1) {
    currentIndex++;
  }

  const translateX = -currentIndex * 100;

  tabs.forEach((tab) => tab.classList.remove('active'));
  panels.forEach((panel) => panel.classList.remove('active'));

  tabs[currentIndex].classList.add('active');
  panels[currentIndex].classList.add('active');

  container.querySelector('.content').style.transform = `translateX(${translateX}%)`;
});
ログイン後にコピー

上記のコードでは、まず querySelector メソッドを通じて DOM 要素を選択し、次に変数 startXcurrentX を使用して指がスライドしたときの記録 開始横軸と現在の横軸。 touchstart イベントでは、event.touches[0].clientX を使用して、指がスライドし始めたときの横座標を取得します。 touchmove イベントでは、event.touches[0].clientX を通じて指の現在の横座標を取得し、preventDefault() メソッドを使用してキャンセルします。デフォルトのスライディング イベント。 touchend イベントでは、指のスライドの水平オフセット deltaX を計算し、しきい値 threshold に基づいてタブを切り替える必要があるかどうかを判断します。最後に、タブ スタイルとコンテンツ領域の transform プロパティを操作して、正しいタブとコンテンツに切り替えます。

完全なサンプル コードについては、次のリンクを参照してください。
[https://codepen.io/](https://codepen.io/)

要約すると、 JavaScript を使用して、タブ コンテンツの指スライドによる切り替え効果を実装し、それをコンテナーに限定できます。 touchstarttouchmovetouchend イベントをリッスンすることで、指のスライドによるタブの切り替え機能を実装したり、CSS スタイルを通じてコン​​テナ内のスライドを制限したりできます。このタイプのインタラクションは、モバイル デバイス上でよりフレンドリーかつ直感的になり、ユーザー エクスペリエンスが向上します。

以上がJavaScript を使用して、コンテナーに限定しながらタブ コンテンツの指スライドによる切り替え効果を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

修正: Google Chrome の ERR_ADDRESS_UNREACHABLE エラー 修正: Google Chrome の ERR_ADDRESS_UNREACHABLE エラー May 15, 2023 pm 06:22 PM

複数の Windows ユーザーが、システム上の Google Chrome ブラウザで一部の Web サイトにアクセスしようとすると、Web ページにアクセスできないと苦情を述べています。また、エラー コード ERR_ADDRESS_UNREACHABLE とともに「サイトにアクセスできません」というメッセージがブラウザーに表示されます。この問題の背後には多くの潜在的な理由が考えられます。Web サイト サーバーの問題、プロキシ サーバー設定、不安定なインターネット接続などが原因である可能性があります。同様の問題が発生した場合でも、パニックに陥る必要はありません。この記事の問題を深く分析した結果、多くの解決策が得られました。続行する前に、次の回避策を試してください。 ユーザーが他のデバイスからサイトにアクセスしようとしていて、問題がないことを確認してください。

Windows 11でプレビューペインが機能しない問題を修正する方法 Windows 11でプレビューペインが機能しない問題を修正する方法 Apr 24, 2023 pm 06:46 PM

Windows ファイル エクスプローラーに付属する機能の 1 つは、選択したファイルのプレビューを表示するプレビュー ペインです。これは、ファイルを開く前にその内容を表示できることを意味します。ファイル エクスプローラーのプレビュー ペインには、Office 関連のドキュメント、PDF、テキスト ファイル、画像、ビデオなど、さまざまな種類のファイルのプレビューが表示されます。通常は正常に動作しますが、ファイルのプレビューが利用できない場合があります。最近、多くの Windows 11 ユーザーが、ファイル エクスプローラーのプレビュー ペインが機能せず、ファイルのプレビューを表示できないという問題を提起しました。 Windows コンピューターでプレビュー ペインが機能しないという問題に直面していますか?それでは、この記事を読み続けてください。ここでは、修正に役立つ修正のリストをまとめました。

Windows 11 では MSI Afterburner を使用できませんか?次の修正を試してください。 Windows 11 では MSI Afterburner を使用できませんか?次の修正を試してください。 May 09, 2023 am 09:16 AM

MSIAfterburner は、ほとんどのグラフィックス カードに適したオーバークロック ツールです。それとは別に、システムのパフォーマンスを監視するために使用することもできます。しかし、一部のユーザーは MSIAfterburner が Windows 11 で動作しないと報告しました。これにはいくつかの理由が考えられますが、それについては次のセクションで説明します。ただし、これが発生すると、ゲームのプレイ中にパフォーマンスを変更したり監視したりすることができなくなります。予想通り、これはゲーマーにとって大きな課題となります。そのため、問題を理解し、Windows 11 で MSIAfterburned が機能しない問題に対する最も効果的な修正方法を説明するために、このチュートリアルを用意しました。

修正: Windows 11でValorantを実行するとVAN 1067エラーが発生する 修正: Windows 11でValorantを実行するとVAN 1067エラーが発生する May 22, 2023 pm 02:41 PM

このオペレーティング システムは以前のバージョンよりもはるかに優れており、AutoHDR や DirectStorage などのゲーマー向けの機能を備えていますが、Valorant プレイヤーはゲームを起動するのに多少の問題がありました。これはゲーマーが以前に直面した最初の問題ではなく、Windows 11 で Valorant が開かないという別の問題もゲーマーを悩ませていますが、それを修正する方法については説明しました。現在、Windows 11 に切り替えた Valorant プレイヤーは、セキュア ブートと TPM2.0 サービスが原因で、実行中にゲーム メニューに終了オプションしか表示されない問題に直面しているようです。多くのユーザーが VAN1067 エラーを受け取りますが、心配する必要はありません。

Opera ブラウザでビデオの自動再生を無効にするにはどうすればよいですか? Opera ブラウザでビデオの自動再生を無効にするにはどうすればよいですか? Apr 22, 2023 pm 10:43 PM

Opera ブラウザの最新バージョンには、新しい自動ビデオ ポップアップ機能が含まれています。この機能を使用すると、ブラウザの別のタブに移動するとビデオが自動的にポップアップすることがわかります。このポップアップ ビデオはサイズを変更したり、画面上で移動したりできることがわかりました。 [ビデオ] タブに戻ると、タブが再開され、フローティング ウィンドウが消えます。ビデオ ポップアップ機能は、仕事中にビデオを見たいマルチタスク ユーザーにとって便利です。ただし、すべての Opera ユーザーがこの自動ビデオ ポップアップ機能を好むわけではありません。もしあなたが、タブを切り替えるたびにポップアップするビデオに悩まされている Opera ブラウザ ユーザーの 1 人なら、適切な投稿を見つけたことでしょう。ここでは、Opera でこのポップアップを無効にする方法を詳しく説明します。

これを修正するには、対話型ウィンドウ ステーションを使用する必要があります。 これを修正するには、対話型ウィンドウ ステーションを使用する必要があります。 Apr 24, 2023 pm 11:52 PM

この操作には対話型ウィンドウ ステーションが必要ですが、これはかなり奇妙なバグです。ユーザーがアプリを操作できるようにするソフトウェア ウィンドウが開いていないため、有効にする必要があります。このバグは、2021 Printing Nightmare の脆弱性と関連付けられています。しかし、それは今でも続いており、コンピューターやデバイスドライバーに影響を与えています。幸いなことに、修正するのは簡単です。そもそもなぜこのエラーが発生するのでしょうか?このエラーの修正方法を説明する前に、必ずこのエラーの原因を列挙してください。こうすることで、同じことが二度と起こらないようにするために必要な措置を講じることができます。破損したファイルによりコンピュータのファイルが台無しになる – 破損は、マルウェアから停電まで、さまざまな理由によって引き起こされる可能性があります。 SFC スキャンを実行することをお勧めします。過剰なウイルス対策アプリを使用している – ウイルス対策ソフトウェアがブロックすることがあります

DirectX 関数 GetDeviceRemovedReason がエラーで失敗する DirectX 関数 GetDeviceRemovedReason がエラーで失敗する May 17, 2023 pm 03:38 PM

私たちがプレイするほぼすべてのハイエンド ゲームは、効率的に実行するために DirectX に依存しています。ただし、一部のユーザーは、DirectX 関数 GetDeviceRemovedReasonfailedwith に続いてエラー理由が表示されると報告しました。上記の理由は平均的なユーザーにとって自明ではないため、根本原因と最も効果的な解決策を特定するには、ある程度の調査が必要です。作業を簡単にするために、このチュートリアルをこの問題専用にしました。次のセクションでは、潜在的な原因を特定し、DirectX 関数 GetDeviceRemovedReasonfailedwitherror を排除するためのトラブルシューティング手順を説明します。何が原因か

Windows 11でインターネット接続速度を最適化する方法 Windows 11でインターネット接続速度を最適化する方法 Apr 23, 2023 pm 10:46 PM

Windows 11 のネットワーク速度が遅い問題を解決するにはどうすればよいですか? 1. コンピュータを再起動します。デスクトップに移動し、Alt+F4 を押して、[Windows のシャットダウン] ボックスをアクティブにします。ドロップダウン メニューをクリックし、オプションのリストから [再起動] を選択します。次に、「OK」をクリックします。 Windows 11 で発生するほとんどの問題の最も効果的な解決策の 1 つは、コンピューターを再起動することです。問題の原因がバックグラウンド プロセスまたはエラーである場合は、オペレーティング システムを再起動すると問題が解消され、エラーが解決されます。コンピューターを再起動した後、Windows 11 のネットワーク速度の問題が解決されたかどうかを確認します。 2. PC がルーター (Wi-Fi ネットワーク) の範囲内にあることを確認します。ワイヤレス ネットワークの場合、デバイスがルーターから離れるほど、インターネット速度は遅くなります。

See all articles