目次
レスポンシブ
モバイルタッチスクリーンスライディング
ホームページ ウェブフロントエンド H5 チュートリアル hwSlider-content スライド切り替え効果 (2): 応答性の高いタッチ スライド

hwSlider-content スライド切り替え効果 (2): 応答性の高いタッチ スライド

Mar 24, 2017 am 10:40 AM

今日は引き続き、コンテンツのスライド切り替えエフェクトの後半を説明します。現在、Web 開発はモバイル デバイスに対応する必要があります。つまり、Web ページは携帯電話などのモバイル デバイスでもアクセスできる必要があります。そのため、最初の部分の基本的なスイッチング効果を強化し、応答性とタッチ スライド効果を追加しました。

hwSlider-content スライド切り替え効果 (2): 応答性の高いタッチ スライド
デモのダウンロードソースコードを見る

この記事は、hwSlider-contentのスライド切り替えエフェクトの後編です。デモDEMOは前編の内容に基づいていますので、前編を読んでいない場合は、こちらをご覧ください。はじめにお読みください ご参照ください: hwSlider-content スライド切り替え効果 (1)

レスポンシブ

レスポンシブデザインとは何か、ここでは説明しません。 hwSlider では、CSS を通じてスライダーの幅と高さを設定し、幅をパーセンテージで設定します。

[code=css]
#hwslider{width: 100%;height:auto;min-height: 120px;margin:40px auto; position: relative; overflow: hidden;}
#hwslider ul{width: 100%; height:100%; position: absolute; z-index: 1}
#hwslider ul li{display:none;position:absolute; left:0; top:0; width: 100%;height:100%; overflow: hidden;}
#hwslider ul li.active{display: block;}
#hwslider ul li img{max-width: 100%}
#dots{position: absolute; bottom:20px; left:200px; min-width:60px; height: 12px; z-index: 2;}
#dots span{float: left; width:12px;height: 12px; border: 1px solid #fff; border-radius: 50%; background: #333; margin-right: 8px; cursor: pointer;}
#dots span.active{background:orangered}
.arr{display:none;position: absolute; top: 140px; z-index: 2;width: 40px; height: 40px; line-height: 38px; text-align: center;; font-size: 36px; background: rgba(0,0,0,.3); color: #fff; text-decoration: none}
.arr:hover{background: rgba(0,0,0,.7); text-decoration: none;}
#hwslider:hover .arr{display: block; text-decoration: none;color: #fff}
#prev{left: 20px}
#next{right: 20px}
ログイン後にコピー

次に、js 部分の先頭に変数を定義します。初期化の resize() 関数では、ナビゲーション ドットとナビゲーション矢印の位置を計算して配置し、ブラウザ ウィンドウのサイズを変更するときに、resize() を呼び出します。 )。

[code=js]
$(function(){
	var slider = $("#hwslider");
	var dots = $("#dots span"),
		prev = $("#prev"),next = $("#next");
	var sliderInder = slider.children('ul')
	var hwsliderLi = sliderInder.children('li');
	var hwsliderSize = hwsliderLi.length;  //滑块的总个数
	var sliderWidth = 600; //滑块初始宽度
	var sliderHeight = 320; //滑块初始高度
	var index = 1; //初始显示第一个滑块
	var speed = 400; //滑动速度
	var interval = 3000; //间隔时间
	var dotShow = true; //是否显示可切换的导航圆点
	var autoPlay = false; //是否支持自动滑动
	var clickable = true; //是否已经点击了滑块在做滑动动画

	

	//初始化组件
	var resize = function(){
		var sWidth = slider.width();
		var dotWidth = hwsliderSize*20;
		var dotOffset = (sWidth-dotWidth)/2;

		var sHeight = sliderHeight/sliderWidth*sWidth;
		slider.css('height',sHeight); 
		$("#dots").css('left',dotOffset+'px'); //导航圆点位置

		var arrOffset = (sHeight-40)/2;
		$(".arr").css('top',arrOffset+'px'); //导航箭头位置
	}

	resize();

	$(window).resize(function(){
	  resize();
	});

});
ログイン後にコピー

モバイルタッチスクリーンスライディング

モバイルデバイスでは、画面をタップし、ジェスチャースライディングを使用してスライダーを切り替えることができます。この効果を実現するには、コア タッチ イベントを使用する必要があります。タッチ イベントを処理すると、画面上でスライドする各指を追跡できます。

以下は 4 つのタッチ イベントです:

touchstart: 指が画面上に置かれるとトリガーされます

touchmove: 指が画面上でスライドするとトリガーされます

touchend: 指が画面から離れるとトリガーされます

touchcancel: ときシステムはタッチ イベント トリガーをキャンセルします。これはあまり使用されないようです

さて、スライダーのタッチ イベントをバインドしてリッスンし、タッチスタートとタッチエンドでそれぞれ画面スライダー上の指の位置を取得する必要があります。変位に基づいて左スライドかどうかを判断するか、右にスワイプしてから moveTo() を呼び出してスライド切り替えを実装します。

[code=css]
var mouseX = 0,
	touchStartY = 0,
	touchStartX = 0;

	hwsliderLi.on({
		//触控开始
		'touchstart': function(e) {
			touchStartY = e.originalEvent.touches[0].clientY;
			touchStartX = e.originalEvent.touches[0].clientX;
		},

		//触控结束
		'touchend': function(e) {
			var touchEndY = e.originalEvent.changedTouches[0].clientY,
				touchEndX = e.originalEvent.changedTouches[0].clientX,
				yDiff = touchStartY - touchEndY,
				xDiff = touchStartX - touchEndX;

			if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {
		        if ( xDiff > 5 ) {
		        	if(index >= hwsliderSize){
						index = 1;
					}else{
						index += 1;
					}
		            moveTo(index,'next');
		        } else {
		        	if(index == 1){
						index = hwsliderSize;
					}else{
						index -= 1;
					}
		            moveTo(index,'prev');
		        }                       
		    }
			touchStartY = null;
			touchStartX = null;
		},

		//触控移动
		'touchmove': function(e) {
			if(e.preventDefault) { e.preventDefault(); }

		}
	});
ログイン後にコピー

前の記事の基本的なスライダー js コードを追加して、応答性の高いタッチスライドによるコンテンツのスライド効果を実現します。
PC上でドラッグとスライドを実装したい場合、マウスを押したままスライダーをドラッグすることでスライド切り替えを実現するには、スライダーのonmousedown、onmousemove、onmouseupイベントをバインドする必要があります。メインのコードはここには掲載されません。コードでソースをダウンロードできます。

上記は hwSlider コンテンツのスライド切り替え効果 (2): 応答性の高いタッチスライド コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連記事:

HTML5のスライディングエリア選択要素を理解するための例 Slider要素

hwSliderコンテンツのスライド切り替え効果(1)

WeChatアプレットの詳細な紹介スライダーコンポーネント

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

CSS を使用してレスポンシブ画像の自動カルーセル効果を実装するためのチュートリアル CSS を使用してレスポンシブ画像の自動カルーセル効果を実装するためのチュートリアル Nov 21, 2023 am 08:37 AM

モバイル デバイスの普及に伴い、Web デザインでは、優れたユーザー エクスペリエンスを実現するために、デバイスの解像度やさまざまな端末の画面サイズなどの要素を考慮する必要があります。 Web サイトのレスポンシブ デザインを実装する場合、画像カルーセル効果を使用して限られた視覚ウィンドウに複数の画像のコンテンツを表示することが必要になることがよくありますが、同時に Web サイトの視覚効果も高めることができます。この記事では、CSS を使用してレスポンシブ画像の自動カルーセル効果を実現する方法を紹介し、コード例と分析を示します。実装のアイデア レスポンシブ画像カルーセルの実装は、CSS フレックス レイアウトを通じて実装できます。存在する

HTML、CSS、jQuery を使用してレスポンシブ タグ クラウドを作成する方法 HTML、CSS、jQuery を使用してレスポンシブ タグ クラウドを作成する方法 Oct 27, 2023 am 10:46 AM

HTML、CSS、jQuery を使用してレスポンシブ タグ クラウドを作成する方法 タグ クラウドは、さまざまなキーワードやタグを表示するために使用される一般的な Web 要素です。通常、キーワードの重要性がさまざまなフォント サイズまたは色で表示されます。この記事では、HTML、CSS、jQueryを使ってレスポンシブタグクラウドを作成する方法と、具体的なコード例を紹介します。 HTML 構造の作成 まず、HTML でタグ クラウドの基本構造を作成する必要があります。順序なしリストを使用してタグを表すことができます

CSS を使用したレスポンシブなスライド メニューの実装に関するチュートリアル CSS を使用したレスポンシブなスライド メニューの実装に関するチュートリアル Nov 21, 2023 am 08:08 AM

CSS を使用してレスポンシブなスライド メニューを実装するチュートリアルには、特定のコード サンプルが必要です。現代の Web デザインでは、レスポンシブ デザインは必須のスキルとなっています。さまざまなデバイスや画面サイズに対応するには、Web サイトに応答性の高いメニューを追加する必要があります。今日は、CSS を使用して応答性の高いスライド メニューを実装し、具体的なコード例を示します。まず、実装を見てみましょう。画面幅が一定のしきい値より小さい場合は自動的に折りたたまれ、メニューボタンをクリックすると展開するナビゲーションバーを作成します。

HTML、CSS、jQuery を使用して応答性の高いスクロール通知バーを作成する方法 HTML、CSS、jQuery を使用して応答性の高いスクロール通知バーを作成する方法 Oct 26, 2023 pm 12:12 PM

HTML、CSS、jQuery を使用して応答性の高いスクロール通知バーを作成する方法 モバイル デバイスの普及と、Web サイトへのアクセス エクスペリエンスに対するユーザーの要件の増加に伴い、応答性の高いスクロール通知バーの設計がますます重要になっています。レスポンシブ デザインにより、Web サイトがさまざまなデバイスで適切に表示され、ユーザーが通知コンテンツを簡単に表示できるようになります。この記事では、HTML、CSS、jQuery を使用して応答性の高いスクロール通知バーを作成する方法を紹介し、具体的なコード例を示します。まず、HTM を作成する必要があります

HTML と CSS を使用してレスポンシブなカルーセル レイアウトを作成する方法 HTML と CSS を使用してレスポンシブなカルーセル レイアウトを作成する方法 Oct 20, 2023 pm 04:24 PM

HTML と CSS を使用してレスポンシブなカルーセル レイアウトを作成する方法 カルーセルは、最新の Web デザインの一般的な要素です。ユーザーの注意を引いたり、複数のコンテンツや画像を表示したり、自動的に切り替えたりすることができます。この記事では、HTMLとCSSを使ってレスポンシブカルーセルレイアウトを作成する方法を紹介します。まず、基本的な HTML 構造を作成し、必要な CSS スタイルを追加する必要があります。以下は単純な HTML 構造です: <!DOCTYPEhtml&g

JavaFX を使用して Java 9 で応答性の高い UI インターフェイスを構築する方法 JavaFX を使用して Java 9 で応答性の高い UI インターフェイスを構築する方法 Jul 30, 2023 pm 06:36 PM

JavaFX を使用して Java9 で応答性の高い UI インターフェイスを構築する方法 はじめに: コンピューター アプリケーションの開発プロセスにおいて、ユーザー インターフェイス (UI) は非常に重要な部分です。優れた UI はユーザー エクスペリエンスを向上させ、アプリケーションをより魅力的なものにします。 JavaFX は、Java プラットフォーム上のグラフィカル ユーザー インターフェイス (GUI) フレームワークであり、対話型 UI インターフェイスを迅速に構築するための豊富なツールと API のセットを提供します。 Java 9 では、JavaFX は JavaSE になりました。

Webman を使用したレスポンシブ Web サイト開発のヒント Webman を使用したレスポンシブ Web サイト開発のヒント Aug 14, 2023 pm 12:27 PM

Webman を使用したレスポンシブ Web サイト開発のヒント 今日のデジタル時代では、人々はインターネットにアクセスするためにモバイル デバイスにますます依存しています。より良いユーザー エクスペリエンスを提供し、さまざまな画面サイズに適応するために、レスポンシブな Web サイト開発が重要なトレンドになっています。 Webman は強力なフレームワークとして、レスポンシブな Web サイトの開発を実現するための多くのツールとテクノロジーを提供します。この記事では、メディア クエリの設定方法など、Webman を使用してレスポンシブ Web サイト開発を行うためのヒントをいくつか紹介します。

React を使用して応答性の高いバックエンド管理システムを開発する方法 React を使用して応答性の高いバックエンド管理システムを開発する方法 Sep 28, 2023 pm 04:55 PM

React を使用して応答性の高いバックエンド管理システムを開発する方法 インターネットの急速な発展に伴い、日々の業務を処理するために効率的で柔軟で管理が容易なバックエンド管理システムを必要とする企業や組織が増えています。現在最も人気のある JavaScript ライブラリの 1 つである React は、ユーザー インターフェイスを構築するための簡潔で効率的かつ保守しやすい方法を提供します。この記事では、React を使用して応答性の高いバックエンド管理システムを開発する方法と、具体的なコード例を紹介します。まず React プロジェクトを作成します

See all articles