目次
HTML
CSS
jQuery
ホームページ ウェブフロントエンド H5 チュートリアル hwSlider-コンテンツのスライド切り替え効果(1)

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

Mar 24, 2017 am 10:40 AM

コンテンツのスライド切り替えには幅広い用途があり、一般的なものには、スライド フォーカス画像、ギャラリー切り替えなどが含まれます。 WEBフロントエンド技術の普及に伴い、Webページにおいてコンテンツのスライド切り替え効果が重要な位置を占めるようになりました。そこで、当サイトのHellowebaでは、フロントエンド向けのコンテンツスライド切り替え効果のわかりやすい開発チュートリアルを特別に用意しました。エンド愛好家。


hwSlider-コンテンツのスライド切り替え効果(1)
デモのダウンロード ソース コードを表示します


このチュートリアルは 3 つの部分に分かれています: 1. jQuery を使用して基本的なコンテンツのスライド スイッチング効果を開発する、2. モバイル タッチ対応コンテンツのスライド スイッチング効果をサポートする、3. コンテンツのカプセル化スライド切り替えエフェクトのjQueryプラグイン。この記事では前編を説明し、次の 2 つの部分は後続の記事で公開しますので、ご期待ください。

この記事では、次のようなコンテンツのスライド切り替えの基本的な効果を達成するための例を組み合わせます:

左右矢印切り替え

無限シームレススクロール

ドットボタン切り替え

アニメーション効果

自動切り替え

HTML

最初の準備 HTML 構造。スライダー コンテンツを含むスライディング領域全体が #hwslider でラップされます。スライダーはコンテンツを整理するために ulli を使用します。スライダー コンテンツには、画像やテキストなどの任意の HTML コンテンツを使用できます。 #dots はドット切り替えナビゲーションであり、スライダーの数に対応する複数の小さなドットで構成され、通常はスライディング エリアの下に配置されます。 .arr は左右 2 つの方向キーで構成されます。

[code=html]
<p id="hwslider">
	<ul>
		<li class="active"><a href="#"><img src="images/s1.jpg" alt="1"></a></li>
		<li><a href="#"><img src="images/s2.jpg" alt="2"></a></li>
		<li>Helloweba</li>
	</ul>
	<p id="dots">
		<span data-index="1" class="active"></span>
		<span data-index="2"></span>
		<span data-index="3"></span>
	</p>
	<a href="javascript:;" id="prev" class="arr"><</a>
	<a href="javascript:;" id="next" class="arr">></a>
</p>
ログイン後にコピー

CSS

CSS を使用して、スライディング領域のコンポーネントのレイアウトを完了します。#hwslider は、位置: 相対、幅、および高さを設定する必要があります。次に、スライダー #hwslider ul li は、デフォルトで位置:絶対を設定します。 , .activeスライダーのみが表示され、サイズを超えた部分は非表示になります。ドット ナビゲーション #dots と矢印ナビゲーション .arr は両方とも、position:Absolute を設定する必要があります。矢印ナビゲーションはデフォルトでは表示されず、マウスがスライダー領域にスライドした場合にのみ表示されます。もう 1 つ注意すべき点は、#dots と .arr の z-index が 2 に設定されていることです。つまり、両方ともスライダーに表示される必要があります。さまざまなニーズに合わせて CSS スタイルを変更できます。次のコードを参照してください。

[code=css]
#hwslider{width: 600px;height: 320px;margin:40px auto; position: relative; overflow: hidden;}
#hwslider ul{width: 600px; height: 320px; position: absolute; z-index: 1}
#hwslider ul li{display:none;position:absolute; left:0; top:0; width: 600px;height: 320px; overflow: hidden;}
#hwslider ul li.active{display: block;}
#dots{position: absolute; bottom:20px; left:270px; 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}
ログイン後にコピー

jQuery

jQuery を使用して、スライド切り替えのさまざまな効果を実現します。 まず、Baidu が提供する jQuery ライブラリと hwslider.js を紹介します。 CDN。

[code=html]
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="js/hwslider.js"></script>
ログイン後にコピー


次に、hwslider.js で変数パラメーターを事前定義します。

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

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

上記では、さまざまな必須変数を定義しています。その中で、スライダーのスライド プロセスには時間がかかるため、クリック スライダー アニメーションを制限するために clickable が使用されます。 complete で矢印をクリックし続けると、通常の状況でクリックが制限されていない場合、スライド アニメーションが完了する前に次のスライド アニメーションが実行され、ページがスタックする可能性があります。
次に、移動アニメーション関数 moveTo() を書きましょう。 2 つのパラメータを受け入れます。index はスライドするターゲット スライダー、dir は次と前を含むスライド方向です。スライド アニメーションの実装に使用する原理は、現在のスライダーが左または右に移動する距離がスライダーの幅と同じであるということです。スライドすると、現在のスライダーは左または右に移動します。ビューポートの左側または右側から次のスライダーが入ります。 jQuery の animate() メソッドを使用してアニメーション効果を実現し、2 つのスライダーの移動速度を一定にし、シームレスなスクロール効果を実現します。また、スライドが完了すると、時間に合わせてドットの切り替えスタイルが変化します。

[code=js]
	var moveTo = function(index,dir){ 
		if(clickable){
			clickable = false;

			//位移距离
			var offset = slider.width();
			if(dir == &#39;prev&#39;){
				offset = -1*offset;
			}

			//当前滑块动画
			sliderInder.children(&#39;.active&#39;).stop().animate({
				left: -offset},
				speed,
				 function() {
				 	$(this).removeClass(&#39;active&#39;);
			});
			//下一个滑块动画
			hwsliderLi.eq(index-1).css(&#39;left&#39;, offset + &#39;px&#39;).addClass(&#39;active&#39;).stop().animate({
				left: 0}, 
				speed,
				function(){
					clickable = true;
			});

			dots.removeClass(&#39;active&#39;);
			dots.eq(index-1).addClass(&#39;active&#39;);

		}else{
			return false;
		}
	}
ログイン後にコピー

矢印がクリックされたときに、現在のスライダーが最初のスライダーであるか最後のスライダーであるかを判断し、ワイヤレス スクロール効果を実現するためにインデックスを再定義してから、moveTo を呼び出します。 (それぞれ。) スライドアニメーション効果を実現する関数。

[code=js]
	next.on(&#39;click&#39;, function(event) {
		event.preventDefault();
		if(clickable){
			if(index >= hwsliderSize){
				index = 1;
			}else{
				index += 1;
			}
			moveTo(index,&#39;next&#39;);
		}
	});

	prev.on(&#39;click&#39;, function(event) {
		event.preventDefault();
		if(clickable){
			if(index == 1){
				index = hwsliderSize;
			}else{
				index -= 1;
			}

			moveTo(index,&#39;prev&#39;);
		}
		
	});
ログイン後にコピー

次に、ドットナビゲーションのクリックイベントをバインドし、小さなドットがクリックされたときに、現在クリックされているドットのシリアル番号、つまりどのドットがどのスライダーに対応しているかを取得し、moveTo()を呼び出します。をクリックして切り替えアニメーションを完了します。

[code=js]
	dots.on(&#39;click&#39;,  function(event) {
		event.preventDefault();
		
		if(clickable){
			var dotIndex = $(this).data(&#39;index&#39;);
			if(dotIndex > index){
				dir = &#39;next&#39;;
			}else{
				dir = &#39;prev&#39;;
			}
			if(dotIndex != index){
				index = dotIndex;
				moveTo(index, dir);
			}
		}
	});
ログイン後にコピー


自動切り替え。最初にタイマーを定義する必要があります。setInterval は一定時間ごとに play() を実行します。play() は実行されるたびにインデックス パラメーターを変更し、moveTo を呼び出して切り替え効果を実現します。最後に、マウスがスライダーを上にスライドするとタイマーはクリアされ、マウスがスライダーから離れるとタイマーは再び自動的に切り替わります。

[code=js]
	if(autoPlay){
		var timer;
		var play = function(){
			index++;
			if(index > hwsliderSize){
				index = 1;
			}
			moveTo(index, &#39;next&#39;);
		}
		timer = setInterval(play, interval); //设置定时器

		//鼠标滑上时暂停
		slider.hover(function() {
			timer = clearInterval(timer);
		}, function() {
			timer = setInterval(play, interval);
		});
	};
ログイン後にコピー


最後に、コードを整理すると、基本的なスライド切り替え効果が表示され、ソース コードをダウンロードしてテストすることもできます。

上記は、hwSlider-content スライド切り替え効果 (1) の内容です。さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連記事:

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

hwSliderコンテンツのスライド切り替え効果(2): レスポンシブタッチスライド

詳細な紹介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)

ViewPortメタタグを使用して、モバイルデバイスのページスケーリングを制御するにはどうすればよいですか? ViewPortメタタグを使用して、モバイルデバイスのページスケーリングを制御するにはどうすればよいですか? Mar 13, 2025 pm 08:00 PM

この記事では、ビューポートメタタグを使用してモバイルデバイスのページスケーリングを制御し、最適な応答性とパフォーマンスのために幅や初期スケールなどの設定に焦点を当てています。

Geolocation APIでユーザーの場所のプライバシーと許可を処理するにはどうすればよいですか? Geolocation APIでユーザーの場所のプライバシーと許可を処理するにはどうすればよいですか? Mar 18, 2025 pm 02:16 PM

この記事では、Geolocation APIを使用してユーザーの場所のプライバシーと許可を管理し、アクセス許可を要求するためのベストプラクティスを強調し、データセキュリティを確保し、プライバシー法を遵守することについて説明します。

HTML5ページの可視性APIを使用して、ページが表示されたときに検出するにはどうすればよいですか? HTML5ページの可視性APIを使用して、ページが表示されたときに検出するにはどうすればよいですか? Mar 13, 2025 pm 07:51 PM

この記事では、HTML5ページの可視性APIを使用して、ページの可視性を検出し、ユーザーエクスペリエンスを向上させ、リソースの使用量を最適化します。重要な側面には、メディアの一時停止、CPU負荷の削減、視認性の変化に基づいて分析の管理が含まれます。

H5プロジェクトの実行方法 H5プロジェクトの実行方法 Apr 06, 2025 pm 12:21 PM

H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

インタラクティブなユーザーインターフェイスにHTML5ドラッグアンドドロップAPIを使用するにはどうすればよいですか? インタラクティブなユーザーインターフェイスにHTML5ドラッグアンドドロップAPIを使用するにはどうすればよいですか? Mar 18, 2025 pm 02:17 PM

この記事では、HTML5ドラッグアンドドロップAPIを使用してインタラクティブなユーザーインターフェイスを作成し、要素をドラッグ可能にし、キーイベントを処理し、カスタムフィードバックを使用してユーザーエクスペリエンスを強化する手順を作成する方法について説明します。また、aへの一般的な落とし穴についても説明します

クライアントとサーバー間の双方向通信にHTML5 WebSockets APIを使用するにはどうすればよいですか? クライアントとサーバー間の双方向通信にHTML5 WebSockets APIを使用するにはどうすればよいですか? Mar 12, 2025 pm 03:20 PM

この記事では、リアルタイムの双方向のクライアントサーバー通信のために、HTML5 WebSockets APIについて説明します。 クライアントサイド(JavaScript)とサーバー側(Python/Flask)の実装を詳述し、スケーラビリティ、状態管理、などの課題に対処します。

H5ページの生産には継続的なメンテナンスが必要ですか? H5ページの生産には継続的なメンテナンスが必要ですか? Apr 05, 2025 pm 11:27 PM

H5ページは、コードの脆弱性、ブラウザー互換性、パフォーマンスの最適化、セキュリティの更新、ユーザーエクスペリエンスの改善などの要因のため、継続的に維持する必要があります。効果的なメンテナンス方法には、完全なテストシステムの確立、バージョン制御ツールの使用、定期的にページのパフォーマンスの監視、ユーザーフィードバックの収集、メンテナンス計画の策定が含まれます。

H5ページの生産に適したアプリケーションシナリオ H5ページの生産に適したアプリケーションシナリオ Apr 05, 2025 pm 11:36 PM

H5(HTML5)は、マーケティングキャンペーンページ、製品ディスプレイページ、企業プロモーションマイクロウェブサイトなどの軽量アプリケーションに適しています。その利点は、クロスプラットフォームと豊富な対話性にありますが、その制限は複雑な相互作用とアニメーション、ローカルリソースアクセス、オフライン機能にあります。

See all articles