В разработку слайд-шоу на JavaScript Разработка веб-сайтов


Download 90.57 Kb.
bet5/9
Sana07.02.2023
Hajmi90.57 Kb.
#1175608
1   2   3   4   5   6   7   8   9
Bog'liq
Введение в JavaScript

function Slideshow( element ) {
this.el = document.querySelector( element );
this.init();
}


Slideshow.prototype = {
init: function() {
this.wrapper = this.el.querySelector( ".slider-wrapper" );
this.slides = this.el.querySelectorAll( ".slide" );
this.previous = this.el.querySelector( ".slider-previous" );
this.next = this.el.querySelector( ".slider-next" );
this.index = 0;
this.total = this.slides.length;

this.actions();
},
_slideTo: function( pointer ) {
var currentSlide = this.slides[pointer];
this.wrapper.style.left = "-" + currentSlide.offsetLeft + "px";
},
actions: function() {
var self = this;
self.next.addEventListener( "click", function() {
self.index++;
self.previous.style.display = "block";

if( self.index == self.total - 1 ) {
self.index = self.total - 1;
self.next.style.display = "none";
}

self._slideTo( self.index );

}, false);

self.previous.addEventListener( "click", function() {
self.index--;
self.next.style.display = "block";

if( self.index == 0 ) {
self.index = 0;
self.previous.style.display = "none";
}

self._slideTo( self.index );

}, false);
}


};




Примеры

jQuery: слайд-шоу
Слайд-шоу на чистом JavaScript



Слайд-шоу с разделением на страницы

В таком слайд-шоу каждая ссылка отвечает за один слайд, поэтому указатель не нужен. Анимации не меняются – меняется способ, которым пользователь перемещается по слайдам. Для jQuery у нас будет следующий код:



(function( $ ) {
$.fn.slideshow = function( options ) {
options = $.extend({
wrapper: ".slider-wrapper",
slides: ".slide",
nav: ".slider-nav",
speed: 500,
easing: "linear"
}, options);

var slideTo = function( slide, element ) {
var $currentSlide = $( options.slides, element ).eq( slide );

$( options.wrapper, element ).
animate({
left: - $currentSlide.position().left
}, options.speed, options.easing );

};


return this.each(function() {
var $element = $( this ),
$navigationLinks = $( "a", options.nav );

$navigationLinks.on( "click", function( e ) {
e.preventDefault();
var $a = $( this ),
$slide = $( $a.attr( "href" ) );

slideTo( $slide, $element );
$a.addClass( "current" ).siblings().
removeClass( "current" );

});


});
};


})( jQuery );

В этом случае каждый анкор соответствует ID определённого слайда. В чистом JS можно использовать как его, так и атрибут data, хранящий числовой индекс слайдов внутри NodeList:






Download 90.57 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling