検索
ホームページウェブフロントエンドH5 チュートリアルH5 シングルページジェスチャスライドスクリーン切り替え原理

H5 のシングル ページ ジェスチャのスライド画面切り替えは、HTML5 のタッチ イベント (Touch) と CSS3 アニメーション (Transform、Transition) を使用して実装されます。この記事では、その実装原理と主なアイデアについて簡単に説明します。

1. 実施原則

5 つのページがあり、各ページが画面幅の 100% を占めると仮定します。p コンテナ ビューポートを作成し、その幅 (width) を 500% に設定します。次に、5 ページをコンテナにロードし、コンテナ全体に対して 5 ページを均等に分割します。 、最後にコンテナのデフォルトの位置を 0 に設定し、オーバーフローを非表示に設定して、画面にデフォルトで最初のページが表示されるようにします。

りー

CSS スタイル:

<p>
    </p><p>
        </p><h3 id="页面">页面-1</h3>
    
    <p>
        </p><h3 id="页面">页面-2</h3>
    
    <p>
        </p><h3 id="页面">页面-3</h3>
    
    <p>
        </p><h3 id="页面">页面-4</h3>
    
    <p>
        </p><h3 id="页面">页面-5</h3>
    

touchstart、touchmove、touchend イベントを登録します。指が画面上をスライドするときに、CSS3 変換を使用してビューポートの位置をリアルタイムに設定します。たとえば、2 ページ目を表示するには、ビューポートの変換を設定します。translate3d(100%,0)。 ,0) 以上です。ここでは、translateX の代わりに translation3d を使用します。translate3d は、携帯電話の GPU をアクティブにオンにしてレンダリングを高速化し、ページのスライドをよりスムーズにします。

2. メインアイデア

画面上に指を置き、指をスライドさせてから画面を離れるまで、これは完全な操作プロセスであり、対応する操作により次のイベントがトリガーされます。 画面に指を置きます: ontouchstart

画面上で指をスライドさせる: ontouchmove

指が画面から離れる: ontouchend

ページのスライドを完了するには、次の 3 段階のタッチ イベントをキャプチャする必要があります:

ontouchstart: 変数を初期化し、指の位置を記録し、現在時刻を記録します

.viewport{
   width: 500%;
   height: 100%;
   display: -webkit-box;
   overflow: hidden;
   //pointer-events: none; //这句话会导致整个页面上的点击事件失效,如需绑定点击事件,请注掉
   -webkit-transform: translate3d(0,0,0);
   backface-visibility: hidden;
   position: relative;
}

ontouchmove: 現在位置を取得し、画面上での指の動きの差ΔXを計算し、その動きにページを追従させます

/*手指放在屏幕上*/
document.addEventListener("touchstart",function(e){
   e.preventDefault();
   var touch = e.touches[0];
   startX = touch.pageX;
   startY = touch.pageY;
   initialPos = currentPosition;   //本次滑动前的初始位置
   viewport.style.webkitTransition = ""; //取消动画效果
   startT = new Date().getTime(); //记录手指按下的开始时间
   isMove = false; //是否产生滑动
}.bind(this),false);

ontouchend: 指が画面から離れたときに、画面がどのページに移動するかを計算します。まず、画面上での指の滞留時間 deltaT を計算します。 deltaT

(1) クイックスライドの場合は、現在のページを画面の中央に完全に配置します (現在のページをどのくらいスライドする必要があるかを計算する必要があります)

(2) スライドが遅い場合は、画面上での指のスライド距離も判断する必要があります。スライド距離が画面幅の 50% を超えない場合は、前のページに戻る必要があります。逆に、現在のページに留まる必要があります

/*手指在屏幕上滑动,页面跟随手指移动*/
document.addEventListener("touchmove",function(e){
   e.preventDefault();
   var touch = e.touches[0];
   var deltaX = touch.pageX - startX;
   var deltaY = touch.pageY - startY;
   //如果X方向上的位移大于Y方向,则认为是左右滑动
   if (Math.abs(deltaX) > Math.abs(deltaY)){
       moveLength = deltaX;
       var translate = initialPos + deltaX; //当前需要移动到的位置
       //如果translate>0 或 = maxWidth){
           //移动页面
           this.transform.call(viewport,translate);
           isMove = true;
       }
       direction = deltaX>0?"right":"left"; //判断手指滑动的方向
   }
}.bind(this),false);

さらに、現在のページがどのページであるかを計算し、現在のページ番号を設定する必要もあります

/*手指离开屏幕时,计算最终需要停留在哪一页*/
document.addEventListener("touchend",function(e){
   e.preventDefault();
   var translate = 0;
   //计算手指在屏幕上停留的时间
   var deltaT = new Date().getTime() - startT;
   if (isMove){ //发生了左右滑动
        //使用动画过渡让页面滑动到最终的位置
        viewport.style.webkitTransition = "0.3s ease -webkit-transform";
        if(deltaT  0 ? 0 : translate; //左边界
            translate = translate  0 ? 0 : translate;
                translate = translate <p>
もちろん、これらは基本的な考え方であり、実際の操作中に注意が必要な点がいくつかありますが、ここでは詳しく説明しません。ソース コードはすべて Git に転送されています。 https://github.com/git -onepixel/guesture、興味のある学生は一緒に議論することを歓迎します</p>

以上がH5 シングルページジェスチャスライドスクリーン切り替え原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
マスタリングマイクロダタ:HTML5のステップバイステップガイドマスタリングマイクロダタ:HTML5のステップバイステップガイドMay 14, 2025 am 12:07 AM

MicrodatainHTML5enhancesSEOanduserexperiencebyprovidingstructureddatatosearchengines.1)Useitemscope,itemtype,anditempropattributestomarkupcontentlikeproductsorevents.2)TestmicrodatawithtoolslikeGoogle'sStructuredDataTestingTool.3)ConsiderusingJSON-LD

HTML5フォームの新しいものは何ですか?新しい入力タイプの調査HTML5フォームの新しいものは何ですか?新しい入力タイプの調査May 13, 2025 pm 03:45 PM

HTML5INTRODUCESNEWINPUTTYPESTENHANCEUSEREXPERIENCE、SIMPRIYIFYDEVELOPMENT、およびIMPROVEACCESSIBILITY.1)自動的にEmailformat.2)FOTIMIZENUMIMERICYPAD.3)およびSimplifyDateAndtimeInputs、reducingEdeDateDateRutedolutution。

H5の理解:意味と重要性H5の理解:意味と重要性May 11, 2025 am 12:19 AM

H5はHTML5、HTMLの5番目のバージョンです。 HTML5は、Webページの表現力と相互作用を向上させ、セマンティックタグ、マルチメディアサポート、オフラインストレージ、キャンバス描画などの新しい機能を導入し、Webテクノロジーの開発を促進します。

H5:アクセシビリティとWeb標準のコンプライアンスH5:アクセシビリティとWeb標準のコンプライアンスMay 10, 2025 am 12:21 AM

ネットワーク標準へのアクセシビリティとコンプライアンスは、Webサイトにとって不可欠です。 1)アクセシビリティは、すべてのユーザーがウェブサイトに平等にアクセスできるようにします。2)ネットワーク標準は、ウェブサイトのアクセシビリティと一貫性を改善するために続きます。3)アクセシビリティには、セマンティックHTML、キーボードナビゲーション、色コントラスト、代替テキストの使用が必要です。

HTMLのH5タグは何ですか?HTMLのH5タグは何ですか?May 09, 2025 am 12:11 AM

HTMLのH5タグは、小さいタイトルまたはサブタイトルのタグを付けるために使用される5番目のタイトルです。 1)H5タグは、コンテンツの階層を改良し、読みやすさとSEOを改善するのに役立ちます。 2)CSSと組み合わせて、スタイルをカスタマイズして視覚効果を強化できます。 3)H5タグを合理的に使用して、乱用を避け、論理コンテンツ構造を確保します。

H5コード:Web構造に関する初心者向けガイドH5コード:Web構造に関する初心者向けガイドMay 08, 2025 am 12:15 AM

HTML5にWebサイトを構築する方法には、次のものが含まれます。1。セマンティックタグを使用して、などのWebページ構造を定義します。 2。マルチメディアコンテンツ、使用、タグを埋め込みます。 3.フォーム検証やローカルストレージなどの高度な機能を適用します。これらの手順を通じて、明確な構造と豊富な機能を備えた最新のWebページを作成できます。

H5コード構造:読みやすさのためのコンテンツの整理H5コード構造:読みやすさのためのコンテンツの整理May 07, 2025 am 12:06 AM

合理的なH5コード構造により、ページは多くのコンテンツの中で際立っています。 1)コンテンツなどのセマンティックラベルを使用して、構造を明確にするためにコンテンツを整理します。 2)FlexBoxやグリッドなどのCSSレイアウトを介して、さまざまなデバイスでのページのレンダリング効果を制御します。 3)レスポンシブデザインを実装して、ページがさまざまな画面サイズに適応するようにします。

H5対古いHTMLバージョン:比較H5対古いHTMLバージョン:比較May 06, 2025 am 12:09 AM

HTML5(H5)以降のバージョンのHTMLの主な違いには、次のものが含まれます。1)H5はセマンティックタグを導入し、2)マルチメディアコンテンツをサポートし、3)オフラインストレージ機能を提供します。 H5は、新しいタグやタグなどのAPIを介してWebページの機能と表現力を高め、ユーザーエクスペリエンスやSEO効果を改善しますが、互換性の問題に注意を払う必要があります。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!