Показать сообщение отдельно
  #3 (permalink)  
Старый 23.04.2020, 18:16
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Тот же самый результат. В строках 30 и 31, результат null
(function($){
	// настройки со значением по умолчанию
	var defaults = { speed: 500 };

	// наши будущие публичные методы
	var methods = {
		xDown: null,                                                        
		yDown: null,
		// инициализация плагина
		init: function(options, args ) {
			// настройки, будут индивидуальными при каждом запуске
			var options = $.extend({}, defaults, options);				
			// инициализируем лишь единожды
			if (!this.data('sSlider')) {
			
				this.data('sSlider', options);
				
				// добавим событий
				var slider = this;
				$(document)
					.on('click', '*[data-direction]', function(e){
						e.preventDefault();
						methods.move( slider, $(this).data('direction'), options );
					});
			}
			return this;
		},
		// двигаем слайдер
		move: function( slider, direction, options ) {
			console.log( $(slider).width() );
			console.log( slider.width() );
			var block  = slider.find('*[data-element="box"]'),
				items  = block.children(),
				first  = items.eq(0);
				last   = items.eq(-1);
				
			
			if( first.is( ':animated' ) ) {
				return;
			}
			items.stop(true, true);
			
			if ( direction === 'prev' ) {	
				first.animate({
					marginLeft: 0 - first.outerWidth()
				}, options.speed, function() {
					first.css('margin-left', 0)
						.appendTo( first.parent() );
				});
			} else {
				last.prependTo(last.parent())
					.css('margin-left','-'+last.outerWidth()+'px')
						.animate({marginLeft:0}, options.speed);
			}
		},
	};

	$.fn.sSlider = function(method){
		if ( methods[method] ) {
			// если запрашиваемый метод существует, мы его вызываем
			// все параметры, кроме имени метода прийдут в метод
			// this так же перекочует в метод
			return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || ! method ) {
			// если первым параметром идет объект, либо совсем пусто
			// выполняем метод init
			return methods.init.apply( this, arguments );
		} else {
			// если ничего не получилось
			$.error('Method "' + method + '" not found');
		}
	};
})(jQuery);
$('.glider').sSlider();
Ответить с цитированием