ホームページ > ウェブフロントエンド > jsチュートリアル > Angularjsを使用したスライドショープラグインを作成 - SitePoint

Angularjsを使用したスライドショープラグインを作成 - SitePoint

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-22 09:49:08
オリジナル
910 人が閲覧しました

このチュートリアルでは、AngularJSを使用してスライドショープラグインを構築し、よりクリーンで簡潔なコードベースのためにjQueryを避けています。 これを実現するために、Angularディレクティブとアニメーションを活用します。 AngularJSの指令に精通していることが想定されています

Creating a Slide Show Plugin With AngularJS - SitePoint

重要な利点:

JQueryベースのソリューションと比較して、

コードを減らしました。
  • ディレクティブとアニメーションを介した既存のAngularJSアプリケーションへのシームレスな統合。
  • jqueryは必要ありません。
  • CSSメディアクエリを通じて達成可能なレスポンシブデザイン キャプション、ナビゲーション、およびループ(カルーセル)効果で簡単にカスタマイズできます。
  • ステップ1:Angularjs指令の定義

という名前の孤立したAngularJSディレクティブを作成することから始めます

は、親のスコープとの競合を防ぐために分離されています。

属性は、親スコープから画像オブジェクトの配列を受信します。アニメーションのサポートにはsliderが含まれています。

var sliderApp = angular.module('sliderApp', ['ngAnimate']); // Note: ngAnimate included

sliderApp.directive('slider', function($timeout) {
  return {
    restrict: 'AE',
    replace: true,
    scope: {
      images: '='
    },
    link: function(scope, elem, attrs) {
      scope.currentIndex = 0;

      scope.next = function() {
        scope.currentIndex = (scope.currentIndex + 1) % scope.images.length;
      };

      scope.prev = function() {
        scope.currentIndex = (scope.currentIndex - 1 + scope.images.length) % scope.images.length;
      };

      scope.$watch('currentIndex', function() {
        scope.images.forEach(function(image) {
          image.visible = false;
        });
        scope.images[scope.currentIndex].visible = true;
      });

      var timer;
      var sliderFunc = function() {
        timer = $timeout(function() {
          scope.next();
          timer = $timeout(sliderFunc, 5000); // Adjust interval as needed
        }, 5000);
      };

      sliderFunc();

      scope.$on('$destroy', function() {
        $timeout.cancel(timer);
      });
    },
    templateUrl: 'templates/templateurl.html'
  };
});
ログイン後にコピー

ステップ2:画像データコントローラーscopeimages ngAnimateコントローラーは画像データを提供します:

ステップ3:ディレクティブテンプレート(

sliderApp.controller('SliderController', function($scope) {
  $scope.images = [
    { src: 'img1.png', title: 'Pic 1' },
    { src: 'img2.jpg', title: 'Pic 2' },
    { src: 'img3.jpg', title: 'Pic 3' },
    { src: 'img4.png', title: 'Pic 4' },
    { src: 'img5.png', title: 'Pic 5' }
  ];
});
ログイン後にコピー
ディレクティブのHTMLテンプレートは、

を使用して画像を表示します templates/templateurl.htmlステップ4:cssアニメーション

ng-repeatスムーズな遷移のためにCSSを追加します(必要に応じてタイミングを調整します):

<div class="slider">
  <div class="slide" ng-repeat="image in images" ng-show="image.visible">
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/"  class="lazy" alt="Creating a Slide Show Plugin With AngularJS - SitePoint" />
    <p>{{image.title}}</p> </div>
  <div class="arrows">
    <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b" ng-click="prev()"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174018895287877.png"  class="lazy" alt="Creating a Slide Show Plugin With AngularJS - SitePoint" /></a>
    <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b" ng-click="next()"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174018895383537.png"  class="lazy" alt="Creating a Slide Show Plugin With AngularJS - SitePoint" /></a>
  </div>
</div>
ログイン後にコピー

ステップ5:ディレクティブの使用

メインのHTMLには、指令とコントローラーを含めます:

.slide.ng-hide-add, .slide.ng-hide-remove {
  transition: opacity 0.5s linear;
}
.slide.ng-hide-add.ng-hide-add-active, .slide.ng-hide-remove {
  opacity: 0;
}
.slide.ng-hide-add, .slide.ng-hide-remove.ng-hide-remove-active {
  opacity: 1;
}
ログイン後にコピー

スライダーをスタイリングするために必要なCSSを含めることを忘れないでください。 この強化された例には、自動スライドショー機能とエラー処理の改善が含まれます。 プレースホルダーの画像パスを実際の画像URLに置き換えることを忘れないでください。 アクセシビリティのために属性が追加されます

以上がAngularjsを使用したスライドショープラグインを作成 - SitePointの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート