Heim > Web-Frontend > js-Tutorial > Erstellen eines Diashow -Plugins mit AngularJS - SitePoint

Erstellen eines Diashow -Plugins mit AngularJS - SitePoint

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-22 09:49:08
Original
910 Leute haben es durchsucht

Dieses Tutorial zeigt, dass ein Diashow -Plugin mit AngularJS erstellt wird und JQuery für eine sauberere, prägnantere Codebasis vermeidet. Wir nutzen Angular -Richtlinien und Animationen, um dies zu erreichen. Die Vertrautheit mit AngularJS -Richtlinien wird angenommen.

Creating a Slide Show Plugin With AngularJS - SitePoint

Schlüsselvorteile:

  • reduziertes Code im Vergleich zu JQuery-basierten Lösungen.
  • nahtlose Integration in vorhandene AngularJS -Anwendungen über Richtlinien und Animationen.
  • Keine jQuery erforderlich.
  • reaktionsschnelles Design, das durch CSS -Medienabfragen erreichbar ist.
  • leicht mit Bildunterschriften, Navigation und Schleifen (Karussell-) Effekte anpassen.

Schritt 1: Definieren der AngularJS -Direktive

Wir beginnen zunächst eine isolierte AngularJS -Anweisung mit dem Namen 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'
  };
});
Nach dem Login kopieren

Das scope ist isoliert, um Konflikte mit Elternbereiche zu verhindern. Das Attribut images empfängt ein Array von Bildobjekten aus dem übergeordneten Bereich. ngAnimate ist für die Animationsunterstützung enthalten.

Schritt 2: Bilddatencontroller

Ein Controller liefert die Bilddaten:

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' }
  ];
});
Nach dem Login kopieren

Schritt 3: Anweisungsvorlage (templates/templateurl.html)

Die HTML -Vorlage der Direktive verwendet ng-repeat, um Bilder anzuzeigen:

<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>
Nach dem Login kopieren

Schritt 4: CSS -Animationen

CSS für reibungslose Übergänge hinzufügen (das Timing wie gewünscht einstellen):

.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;
}
Nach dem Login kopieren

Schritt 5: Verwenden Sie die Anweisung

In Ihrem Haupt -HTML die Direktive und den Controller einschließen:

<div ng-controller="SliderController">
  <slider images="images"></slider>
</div>
Nach dem Login kopieren

Denken Sie daran, die erforderlichen CSS zum Styling des Schiebereglers einzubeziehen. Dieses erweiterte Beispiel umfasst die automatische Diashow -Funktionalität und eine verbesserte Fehlerbehandlung. Denken Sie daran, Platzhalterbildpfade durch Ihre tatsächlichen Bild -URLs zu ersetzen. Die alt -attribute werden zur Zugänglichkeit hinzugefügt.

Das obige ist der detaillierte Inhalt vonErstellen eines Diashow -Plugins mit AngularJS - SitePoint. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage