PageSourceSearch

https://www.ruuust.com/common/js/jquery.sfSlider.js

js ruuust.com collected 2026-10-08 22:10:41 UTC 28,763 bytes, 926 lines download raw bytes

1/**
2jquery.sfSlider.js
3
4カフェコムサ用調整
5
6Copyright (c) 2016 SFcoding daisuke norimatsu
7
8This software is released under the MIT License.
9http://opensource.org/licenses/mit-license.php
10*/
11
12/*html------------------------------------- 
13<div class="slide">
14	<div class="mask">
15		<div class="slider">
16			<div class="item"><a href="#1">1</a></div>
17			<div class="item"><a href="#2">2</a></div>
18			<div class="item"><a href="#3">3</a></div>
19			<div class="item"><a href="#4">4</a></div>
20			<div class="item"><a href="#5">5</a></div>
21		</div>
22	</div>
23	<div class="next">→</div>
24	<div class="prev">←</div>
25	<div class="pager"></div>
26</div>
27-------------------------------------*/
28
29/*js------------------------------------- 
30$(".slide").sfSlider({
31	evtNameSpace: 'イベントネーム' || 'sfSlider',
32	maskClass: ’マスク要素のクラス’ || 'mask',
33	sliderClass: ’スライド要素のクラス’ || 'slider',
34	itemClass: 'スライド内アイテムのクラス' || 'item',
35	nextClass: '次へボタンのクラス' || 'next',
36	prevClass: '前へボタンのクラス' || 'prev',
37	pagerClass: 'ページャー格納要素のクラス' || 'pager',
38	pagerHasItem: 'ページャーの要素がすでにあるか' || false,
39	pagerItemStr: 'ページャー要素のHTML' || '<div class="pagerItem">&nbsp;</div>',
40	pagerStayClass: 'ページャーの現在地のクラス' || 'stay',
41	mode: '動作モード slide固定' || 'slide',
42	pieceOfItemNum: '1スライドのアイテム表示数' || 1,
43	slidePieceNum: '移動アイテム数' || _pieceOfItemNum,
44	direction: '移動方法 horizon固定' || 'horizon',
45	loopType: 'ループタイプ loop固定' || 'loop' or 'stop',
46	moveSpeed: '移動速度' || 600,
47	cssMoveSpeed: 'アニメーションCSS適用時の移動速度' || 600,
48	flickMoveSpeed: 'フリック時の移動速度' || 300,
49	easing: 'イージング' || 'linear',
50	autoPlay: '自動で入れ替わるか' || false,
51	autoPlayHoverWait: 'autoPlay時に要素のホバーで止めるか' || false,
52	waitTime: 'autoPlay時の待ち時間' || 5000,
53	mouseUseFlick: 'マウスでもフリックさせるか' || 'false',
54	startFunc: '移動開始前の関数' || null,
55	moveStartFunc: '移動開始時の関数' || null,
56	moveEndFunc: '移動終了時の関数' || null,
57	currentItemCenter: 'カレントアイテムをセンターにするか' || false,
58	posAdjust: フリック時の位置の調整 || null,
59	numShortSlide: アイテムが足りない場合スライドさせない || true
60});
61-------------------------------------*/
62	
63/*例------------------------------------- 
64$(function () {
65	$(".slide").sfSlider({
66		pieceOfItemNum: 5,
67		slidePieceNum: 1,
68		mouseFlick: true,
69		currentItemCenter: true,
70		startFunc: function(argumentObj) {
71			console.log("===startFunc==================")
72			console.log('panelNum       : ' + argumentObj.panelNum);
73			console.log('slideNum       : ' + argumentObj.slideNum);
74			console.log('itemLength     : ' + argumentObj.itemLength);
75			console.log('slidePieceNum  : ' + argumentObj.slidePieceNum);
76			console.log('pieceOfItemNum : ' + argumentObj.pieceOfItemNum);
77			console.log('showItem : ');
78			console.log(argumentObj.showItem);
79			console.log('hideItem : ');
80		},
81		moveStartFunc: function(argumentObj) {
82			console.log("===startFunc==================")
83			console.log('panelNum       : ' + argumentObj.panelNum);
84			console.log('slideNum       : ' + argumentObj.slideNum);
85			console.log('itemLength     : ' + argumentObj.itemLength);
86			console.log('slidePieceNum  : ' + argumentObj.slidePieceNum);
87			console.log('pieceOfItemNum : ' + argumentObj.pieceOfItemNum);
88			console.log('showItem : ');
89			console.log(argumentObj.showItem);
90			console.log('hideItem : ');
91		},
92		moveEndFunc: function(argumentObj) {
93			console.log("===endFunc==================")
94			console.log('panelNum       : ' + argumentObj.panelNum);
95			console.log('slideNum       : ' + argumentObj.slideNum);
96			console.log('itemLength     : ' + argumentObj.itemLength);
97			console.log('slidePieceNum  : ' + argumentObj.slidePieceNum);
98			console.log('showItem : ');
99			console.log(argumentObj.showItem);
100			console.log('hideItem : ');
101			console.log(argumentObj.hideItem);
102		}
103	});
104	var sliderObj = $.data($(".slide").get(0),'sfSlider').sfSlider;
105	
106	
107	$('.changeBtn1').click(function(){
108		sliderObj.stateChange({
109			pieceOfItemNum : 1,
110			slidePieceNum: 1
111		});
112	});
113	$('.changeBtn2').click(function(){
114		sliderObj.stateChange({
115			pieceOfItemNum : 2,
116			slidePieceNum: 2
117		});
118	});
119	$('.changeBtn3').click(function(){
120		sliderObj.stateChange ({
121			pieceOfItemNum : 3,
122			slidePieceNum: 3
123		});
124	});
125	
126	$('.moveBtn1').click(function(){
127		sliderObj.instantPosNum(0);
128	});
129	$('.moveBtn2').click(function(){
130		sliderObj.instantPosNum(1);
131	});
132	$('.moveBtn3').click(function(){
133		sliderObj.instantPosNum(2);
134	});
135	$('.moveBtn4').click(function(){
136		sliderObj.instantPosNum(3);
137	});
138	$('.moveBtn5').click(function(){
139		sliderObj.instantPosNum(4);
140	});
141	
142	
143	$('.aniBtn1').click(function(){
144		sliderObj.slideMoveItemNum(0);
145	});
146	$('.aniBtn2').click(function(){
147		sliderObj.slideMoveItemNum(1);
148	});
149	$('.aniBtn3').click(function(){
150		sliderObj.slideMoveItemNum(2);
151	});
152	$('.aniBtn4').click(function(){
153		sliderObj.slideMoveItemNum(3);
154	});
155	$('.aniBtn5').click(function(){
156		sliderObj.slideMoveItemNum(4);
157	});
158	
159	$('.originalHtml').click(function(){
160		sliderObj.backOriginal();
161	});
162	
163});
164
165-------------------------------------*/
166(function($) {
167	'use strict';
168	$.fn.extend({
169		sfSlider: function(option) {
170			var $win = $(window);
171
172			var $checkElm = $('<div>');
173			$.support.transform = typeof $checkElm.css('transform') === 'string';
174			$.support.transition = typeof $checkElm.css('transitionProperty') === 'string';
175
176			var __cssAnimeSupport = ($.support.transform && $.support.transition) ? true : false;
177			//test
178			//var __cssAnimeSupport = false;
179			var __touchDevice = (typeof window.ontouchstart) !== 'undefined';
180
181
182			this.each(function() {
183				var _that = {};
184
185				var _opt = option || {},
186					_evtNameSpace = _opt.evtNameSpace || 'sfSlider',
187					_maskClass = _opt.maskClass || 'mask',
188					_sliderClass = _opt.sliderClass || 'slider',
189					_itemClass = _opt.itemClass || 'item',
190					_nextClass = _opt.nextClass || 'next',
191					_prevClass = _opt.prevClass || 'prev',
192					_pagerClass = _opt.pagerClass || 'pager',
193					_pagerHasItem = (_opt.pagerHasItem === undefined) ? false : _opt.pagerHasItem,
194					_pagerItemStr = _opt.pagerItemStr || '<div class="pagerItem">&nbsp;</div>',
195					_pagerStayClass = _opt.pagerStayClass || 'stay',
196					_mode = _opt.mode || 'slide',
197					_pieceOfItemNum = _opt.pieceOfItemNum || 1,
198					_slidePieceNum = _opt.slidePieceNum || _pieceOfItemNum,
199					_direction = _opt.direction || 'horizon',
200					_loopType = _opt.loopType || 'loop',
201					_moveSpeed = _opt.moveSpeed || 600,
202					_cssMoveSpeed = _opt.cssMoveSpeed || 600,
203					_flickMoveSpeed = _opt.flickMoveSpeed || 300,
204					_easing = _opt.easing || 'linear',
205					_autoPlay = (_opt.autoPlay === undefined) ? false : _opt.autoPlay,
206					_autoPlayHoverWait = (_opt.autoPlayHoverWait === undefined) ? false : _opt.autoPlayHoverWait,
207					_waitTime = _opt.waitTime || 5000,
208					_mouseUseFlick = (_opt.mouseUseFlick === undefined) ? false : _opt.mouseUseFlick,
209					_startFunc = _opt.startFunc || null,
210					_moveStartFunc = _opt.moveStartFunc || null,
211					_moveEndFunc = _opt.moveEndFunc || null,
212					_currentItemCenter = (_opt.currentItemCenter === undefined) ? false : _opt.currentItemCenter,
213					_posAdjust = (_opt.posAdjust === undefined) ? null : _opt.posAdjust,
214					_numShortSlide = (_opt.numShortSlide === undefined) ? true : _opt.numShortSlide;
215
216				var _$wrap = $(this),
217					_$mask = _$wrap.find('.' + _maskClass),
218					_$slider = _$wrap.find('.' + _sliderClass),
219					_$items = _$wrap.find('.' + _itemClass),
220					_$next = _$wrap.find('.' + _nextClass),
221					_$prev = _$wrap.find('.' + _prevClass),
222					_$pager = _$wrap.find('.' + _pagerClass),
223					_$originalHtml = _$wrap.clone();
224
225				var _hasPager = (_$pager.length) ? true : false;
226
227				var _waitTimer = null,
228					_itemW = null,
229					_itemLength = _$items.length,
230					_panelNum = 0,
231					_slideNum = 0,
232					_isMove = false,
233					_slideX = 0,
234					_panelLength = Math.ceil(_itemLength / _slidePieceNum),
235					_mouseFlick = (_mouseUseFlick && !__touchDevice) ? true : false,
236					currentItemCenterOffset = 0;
237
238				var _X1,
239					_Y1,
240					_X2,
241					_Y2,
242					_touchX,
243					_touchY,
244					_nowX,
245					_firstDir,
246					_flickXMove,
247					_flickYMove,
248					_isTouch = false,
249					_isMoveFlick = false,
250					_slideNone = false;
251
252				var _init = function() {
253					
254					if(_numShortSlide) {
255						if(_pieceOfItemNum >= _itemLength) {
256							__touchDevice = false;
257							__cssAnimeSupport = false;
258							_slideNone = true;
259							_autoPlay = false;
260							_mouseFlick = false;
261							_$next.css('display', 'none');
262							_$prev.css('display', 'none');
263							_$pager.css('display', 'none');
264						}
265					}
266					
267					
268					//console.log(_slideNone);
269					
270					if (_mode === 'slide' && _loopType === 'loop') {
271						_$items.each(function(index) {
272							var $this = $(this);
273							$this.addClass(_itemClass + index);
274							_$slider.append($this.clone());
275						});
276						_$items.each(function() {
277							_$slider.append($(this).clone());
278						});
279						_$items = _$wrap.find('.' + _itemClass);
280					}
281
282					$win.on('resize.' + _evtNameSpace, function() {
283						_winResize();
284					}).trigger('resize.' + _evtNameSpace);
285
286					if (_hasPager) {
287						_pagerSet();
288					}
289
290					_$next.on('click.' + _evtNameSpace, function() {
291						if (_isMove) {
292							return;
293						}
294						_nextMove();
295					});
296					_$prev.on('click.' + _evtNameSpace, function() {
297						if (_isMove) {
298							return;
299						}
300						_prevMove();
301					});
302
303					var evtStartStr = 'touchstart.' + _evtNameSpace;
304					var evtMoveStr = 'touchmove.' + _evtNameSpace;
305					var evtEndStr = 'touchend.' + _evtNameSpace;
306					var evtCancelStr = 'touchcancel.' + _evtNameSpace;
307
308					//alert(_mouseFlick);
309					if (_mouseFlick) {
310						evtStartStr = 'mousedown.' + _evtNameSpace;
311						evtMoveStr = 'mousemove.' + _evtNameSpace;
312						evtEndStr = 'mouseup.' + _evtNameSpace;
313						evtCancelStr = 'mouseout.' + _evtNameSpace;
314						
315						_$slider.find("*").css({
316							"user-select": "none",
317							"-webkit-user-select": "none",
318							"-moz-user-select": "none",
319							"-khtml-user-select": "none",
320							"-webkit-user-drag": "none",
321							"-khtml-user-drag": "none"
322						});
323						_$slider.find("*").on("mousedown." + _evtNameSpace, function(e) {
324							e.preventDefault();
325						});
326						_$slider.find("*").on("mouseup." + _evtNameSpace, function(e) {
327							e.preventDefault();
328						});
329					}
330
331					_$slider.on(evtStartStr, function(e) {
332						if (_isMove) {
333							_isTouch = false;
334							return;
335						}
336						//console.log('start');
337						_isTouch = true;
338						_$slider.find("a").off('click.' + _evtNameSpace);
339						_clearTimer();
340						_X1 = (__touchDevice) ? e.originalEvent.touches[0].clientX : e.pageX;
341						_Y1 = (__touchDevice) ? e.originalEvent.touches[0].clientY : e.pageY;
342						/*console.log('touch');
343						console.log('_X1 : ' + _X1 + ' , _Y1 : ' + _Y1);*/
344						_touchStart(e);
345					});
346
347					_$slider.on(evtMoveStr, function(e) {
348						if (!_isTouch) {
349							return;
350						}
351						//console.log('move');
352						_X2 = (__touchDevice) ? e.originalEvent.touches[0].clientX : e.pageX;
353						_Y2 = (__touchDevice) ? e.originalEvent.touches[0].clientY : e.pageY;
354						if (Math.abs(_Y1 - _Y2) < Math.abs(_X1 - _X2)) {
355							_$slider.addClass('js-isTouchMove');
356							e.preventDefault();
357						} else {
358							_setTimer();
359						}
360						_touchMove(e);
361					});
362
363					_$slider.on(evtEndStr, function(e) {
364						if (!_isTouch) {
365							return;
366						}
367						//console.log('end');
368						_touchEnd(e);
369						_isTouch = false;
370					});
371
372					_$slider.on(evtCancelStr, function(e) {
373						if (!_isTouch) {
374							return;
375						}
376						_touchEnd(e);
377						_isTouch = false;
378					});
379
380					_pagerCheck();
381					_setTimer();
382
383					if (_autoPlayHoverWait) {
384						_$slider.on('mouseenter.' + _evtNameSpace, function() {
385							_clearTimer();
386						});
387						_$slider.on('mouseleave.' + _evtNameSpace, function() {
388							_setTimer();
389						});
390					}
391				};
392
393				var _nextMove = function() {
394					//console.log('next');
395					_doStartFunc('next');
396					var maxSlideNum = _itemLength - _slidePieceNum;
397					if(_slideNum > maxSlideNum) {
398						_slideNum = maxSlideNum;
399					}
400					_panelNum += 1;
401					if (_hasPager) {
402						
403						if (_slideNum !== maxSlideNum) {
404							_slideNum += _slidePieceNum;
405							if (_slideNum > maxSlideNum) {
406								_slideNum = _itemLength - _slidePieceNum;
407							}
408						} else {
409							_slideNum += _slidePieceNum;
410						}
411					} else {
412						_slideNum += _slidePieceNum;
413					}
414					_slideMove();
415					_doMoveStartFunc();
416				};
417
418				var _prevMove = function() {
419					_doStartFunc('prev');
420					_panelNum -= 1;
421					if (_hasPager) {
422						if (_slideNum !== 0) {
423							var tmpSlideNum = _slideNum - _slidePieceNum;
424							if (tmpSlideNum < 0) {
425								_slideNum = 0;
426							} else {
427								_slideNum -= _slidePieceNum;
428							}
429						} else {
430							_slideNum -= _slidePieceNum;
431						}
432					} else {
433						_slideNum -= _slidePieceNum;
434					}
435					_slideMove();
436					_doMoveStartFunc();
437				};
438
439				var _touchStart = function(e) {
440					//console.log('_touchStart');
441					_firstDir = false;
442					_$slider.stop();
443					_touchX = (__touchDevice) ? event.changedTouches[0].pageX : e.pageX;
444					_touchY = (__touchDevice) ? event.changedTouches[0].pageY : e.pageY;
445					if (__cssAnimeSupport) {
446						_nowX = _$slider.position().left + _itemLength * _itemW - _$wrap.offset().left;
447					} else {
448						_nowX = _$slider.offset().left + _itemLength * _itemW - (_$wrap.offset().left * 2);
449					}
450					//console.log('_$slider.position().left : ' + _$slider.position().left);
451					//console.log('_$slider.offset().left : ' + _$slider.offset().left);
452				};
453
454				var _touchMove = function(e) {
455					//console.log('_touchMove');
456					var dX = (__touchDevice) ? event.changedTouches[0].pageX : e.pageX;
457					var dY = (__touchDevice) ? event.changedTouches[0].pageY : e.pageY;
458					_flickXMove = _touchX - dX;
459					_flickYMove = _touchY - dY;
460					
461					/*console.log('==============================');
462					console.log('dX : ' + dX);
463					console.log('_touchX : ' + _touchX);
464					console.log('_flickXMove : ' + _flickXMove);*/
465						
466					if (Math.abs(_flickXMove) >= Math.abs(_flickYMove)) {
467						e.preventDefault();
468						_$slider.find("a").on('click.' + _evtNameSpace, function(e) {
469							e.preventDefault();
470						});
471						if (!_firstDir) {
472							_firstDir = "x";
473						}
474					} else {
475						if (!_firstDir) {
476							_firstDir = "y";
477						}
478					}
479
480					if (_firstDir === "y") {
481						_isTouch = false;
482						_flickXMove = 0;
483					}
484					if (_mode === "slide") {
485						var adjustOffset = _$mask.offset().left;
486						//console.log(_posAdjust);
487						if(_posAdjust !== null) {
488							//console.log('call');
489							adjustOffset = _posAdjust;
490						}
491						_slideX = _nowX - _flickXMove + adjustOffset;
492						//console.log(_$mask.offset().left);
493						/*console.log('==============================');
494						console.log('_nowX : ' + _nowX);
495						console.log('_flickXMove : ' + _flickXMove);
496						console.log('_$mask.offset().left : ' + _$mask.offset().left);
497						console.log('_slideX : ' + _slideX);*/
498						_instantPos(-_slideX + currentItemCenterOffset);
499					}
500				};
501
502				var _touchEnd = function() {
503					//console.log('_touchEnd');
504					if (Math.abs(_flickYMove) >= 200) {
505						_flickXMove = 0;
506					}
507					if (Math.abs(_flickXMove) >= 25) {
508						_isMoveFlick = true;
509						if (_flickXMove < 0) {
510							if (_mode === "slide") {
511								_prevMove();
512							} else if (_mode === "fade") {
513								_prevMove();
514							}
515						} else if (_flickXMove > 0) {
516							if (_mode === "slide") {
517								_nextMove();
518							} else if (_mode === "fade") {
519								_nextMove();
520							}
521						}
522					} else {
523						_isMoveFlick = true;
524						if (_mode === "slide") {
525							_slideMove();
526						}
527					}
528
529					_flickXMove = 0;
530					
531					setTimeout(function() {
532						_$slider.removeClass('js-isTouchMove');
533					},5);
534					
535				};
536
537				var _slideMove = function() {
538					_isMove = true;
539					_clearTimer();
540					_pagerCheck();
541					
542					
543					_slideX = (_slideNum * _itemW) - currentItemCenterOffset;
544					/*console.log('_slideNum : ' + _slideNum);
545					console.log('_slideX : ' + _slideX);*/
546					var easeStr,
547						moveSpeed;
548					
549					if (__cssAnimeSupport) {
550						
551						easeStr = _getEasingCss(_easing);
552						moveSpeed = _cssMoveSpeed;
553						
554						if(_isMoveFlick) {
555							easeStr = 'ease';
556							moveSpeed = _flickMoveSpeed;
557						}
558						
559						_$slider.css({
560							'-o-transition': '-o-transform ' + moveSpeed + 'ms ' + easeStr,
561							'-o-transform': 'translate(' + -_slideX + 'px, 0)',
562							'transition': 'transform ' + moveSpeed + 'ms ' + easeStr,
563							'transform': 'translate3d(' + -_slideX + 'px, 0, 0)',
564							'-webkit-transition': '-webkit-transform ' + moveSpeed + 'ms ' + easeStr,
565							'-webkit-transform': 'translate3d(' + -_slideX + 'px, 0, 0)'
566						});
567
568						/*_$slider.on('oTransitionEnd.' + _evtNameSpace + ' mozTransitionEnd.' + _evtNameSpace + ' webkitTransitionEnd.' + _evtNameSpace + ' transitionend.' + _evtNameSpace, function() {
569							_checkLoop();
570							_isMove = false;
571							_setTimer();
572							_$slider.off('oTransitionEnd.' + _evtNameSpace + ' mozTransitionEnd.' + _evtNameSpace + ' webkitTransitionEnd.' + _evtNameSpace + ' transitionend.' + _evtNameSpace);
573						});*/
574
575						setTimeout(function() {
576							_checkLoop();
577							_isMoveFlick = false;
578							_isMove = false;
579							_setTimer();
580							_doMoveEndFunc();
581						}, moveSpeed);
582
583					} else {
584						
585						easeStr = _easing;
586						moveSpeed = _moveSpeed;
587						
588						
589						if(_isMoveFlick) {
590							easeStr = 'linear';
591							moveSpeed = _flickMoveSpeed;
592						}
593						
594						_$slider.animate({
595							'marginLeft': -_slideX
596						}, moveSpeed, easeStr, function() {
597							_checkLoop();
598							_isMoveFlick = false;
599							_isMove = false;
600							_setTimer();
601							_doMoveEndFunc();
602						});
603
604					}
605				};
606				
607				var _instantPosNum = function(num) {
608					_slideNum = num;
609					var movePt = _itemW * num;
610					_instantPos(movePt);
611					//_panelNum = Math.ceil(Math.floor(_itemLength / _pieceOfItemNum) / _slideNum);
612					if((_slideNum >= _itemLength - _slidePieceNum) && _slidePieceNum !== 1) {
613						_panelNum = Math.floor(_itemLength / _slidePieceNum);
614						/*console.log('==============================');
615						console.log('true:_panelNum : ' + _panelNum);*/
616					}else {
617						_panelNum = Math.floor(_slideNum / _slidePieceNum);
618						/*console.log('==============================');
619						console.log('false:_panelNum : ' + _panelNum);*/
620					}
621					_pagerCheck();
622				};
623
624				var _instantPos = function(movePt) {
625					movePt = movePt - currentItemCenterOffset;
626					if (__cssAnimeSupport) {
627						_$slider.css({
628							'-webkit-transition': '-webkit-transform 0ms ease',
629							'-webkit-transform': 'translate3d(' + -movePt + 'px, 0, 0)',
630							'-o-transition': '-o-transform 0ms ease',
631							'-o-transform': 'translate(' + -movePt + 'px, 0)',
632							'transition': 'transform 0ms ease',
633							'transform': 'translate3d(' + -movePt + 'px, 0, 0)'
634						});
635					} else {
636						_$slider.stop().css({
637							'marginLeft': -movePt
638						});
639					}
640				};
641				
642
643				var _numSlideMove = function(num) {
644					_slideNum = num;
645					_slideMove();
646				};
647				
648				var _slideMoveItemNum = function(num) {
649					_numSlideMove(num);
650					if((_slideNum >= _itemLength - _slidePieceNum) && _slidePieceNum !== 1) {
651						_panelNum = Math.floor(_itemLength / _slidePieceNum);
652					}else {
653						_panelNum = Math.floor(_slideNum / _slidePieceNum);
654					}
655					_pagerCheck();
656				};
657
658				var _checkLoop = function() {
659					//console.log('_checkLoop');
660					var tmpSlideDist;
661
662					/*console.log("_slideNum: " + _slideNum);
663					console.log("_itemLength: " + _itemLength);*/
664					if (_slideNum + _slidePieceNum > _itemLength) {
665						//console.log('Loop');
666						_slideNum -= _itemLength;
667						tmpSlideDist = _slideNum * _itemW;
668						_instantPos(tmpSlideDist);
669					} else if (_slideNum < 0) {
670						//console.log('Loop');
671						_slideNum += _itemLength;
672						tmpSlideDist = _slideNum * _itemW;
673						_instantPos(tmpSlideDist);
674					}
675				};
676
677				var _pagerSet = function() {
678					if(!_pagerHasItem) {
679						_$pager.html('');
680						for (var i = 0; i < _panelLength; i++) {
681							var $tmpPagerItem = $(_pagerItemStr);
682							_$pager.append($tmpPagerItem);
683						}
684					}
685					_$pager.find('> *').each(function(index) {
686						var $this = $(this);
687						$this.data('panelNum', index);
688						$this.on('click.' + _evtNameSpace, function() {
689							_pagerClick($this);
690						});
691					});
692				};
693
694				var _pagerClick = function($target) {
695					if ($target.hasClass(_pagerStayClass) || _isMove) {
696						return;
697					}
698					
699					_doStartFunc();
700					_panelNum = $target.data('panelNum');
701
702					var num;
703					if (_panelNum === _panelLength - 1) {
704						num = _itemLength - _slidePieceNum;
705					} else {
706						num = _panelNum * _slidePieceNum;
707					}
708
709					_numSlideMove(num);
710					_doMoveStartFunc();
711				};
712
713				var _pagerCheck = function() {
714					if (!_hasPager) {
715						return;
716					}
717					
718					var $pagerItem = _$pager.find('> *');
719					$pagerItem.removeClass(_pagerStayClass);
720					if (_panelNum >= _panelLength) {
721						_panelNum = 0;
722					} else if (_panelNum < 0) {
723						_panelNum = _panelLength - 1;
724					}
725					$pagerItem.eq(_panelNum).addClass(_pagerStayClass);
726				};
727
728				var _winResize = function() {
729					if (_mode === 'slide') {
730						_itemW = _$mask.width() / _pieceOfItemNum;
731						_$items.width(_itemW);
732						if(_currentItemCenter) {
733							currentItemCenterOffset = _$mask.width() / 2 - _itemW / 2;
734						}
735						if (_loopType === 'loop') {
736							_$slider.css('left', -(_itemLength * _itemW));
737						}
738					}
739					_slideX = _slideNum * _itemW;
740					_instantPos(_slideX);
741				};
742
743				var _setTimer = function() {
744					if (_waitTimer || !_autoPlay) {
745						return;
746					}
747					_waitTimer = setInterval(function() {
748						_nextMove();
749					}, _waitTime);
750				};
751
752				var _clearTimer = function() {
753					if (!_waitTimer || !_autoPlay) {
754						return;
755					}
756					clearInterval(_waitTimer);
757					_waitTimer = null;
758				};
759
760				var _reset = function() {
761					_clearTimer();
762					_panelLength = Math.ceil(_itemLength / _slidePieceNum);
763					_pagerSet();
764					_winResize();
765					_doStartFunc();
766					_panelNum = 0;
767					_numSlideMove(0);
768					_doMoveStartFunc();
769				};
770				
771				var _getStateObj = function(flagTxt) {
772					var stateObj = {};
773					stateObj.panelNum = _panelNum;
774					stateObj.slideNum = _slideNum;
775					stateObj.itemLength = _itemLength;
776					stateObj.slidePieceNum = _slidePieceNum;
777					stateObj.pieceOfItemNum = _pieceOfItemNum;
778					var showNum = _slideNum + _itemLength - 1;
779					stateObj.showItem = _$items.filter(':gt(' + showNum + '):lt(' + _pieceOfItemNum + ')');
780					stateObj.hideItem = _$items.not(stateObj.showItem);
781					if(flagTxt) {
782						if(flagTxt === 'next') {
783							//stateObj.nextShowItem = _$items.filter(':gt(' + showNum + _pieceOfItemNum + '):lt(' + _pieceOfItemNum + ')');
784							//stateObj.nextHideItem = _$items.not(stateObj.nextShowItem);
785						}else if(flagTxt === "prev") {
786							//console.log("_pieceOfItemNum:" + _pieceOfItemNum);
787							//console.log(showNum - _pieceOfItemNum);
788							//stateObj.nextShowItem = _$items.filter(':gt(' + showNum - _pieceOfItemNum + '):lt(' + _pieceOfItemNum + ')');
789							//stateObj.nextHideItem = _$items.not(stateObj.nextShowItem);
790						}
791					}
792					return stateObj;
793				};
794				
795				var _doStartFunc = function(nextOrPrev) {
796					if(_startFunc) {
797						_startFunc(_getStateObj(nextOrPrev));
798					}
799				};
800				
801				var _doMoveStartFunc = function(nextOrPrev) {
802					if(_moveStartFunc) {
803						_moveStartFunc(_getStateObj(nextOrPrev));
804					}
805				};
806				
807				var _doMoveEndFunc = function() {
808					if(_moveEndFunc) {
809						_moveEndFunc(_getStateObj());
810					}
811				};
812				
813				_that.getStateObj = function() {
814					return _getStateObj();
815				};
816				
817				_that.stateChange = function(changeObj) {
818					var doFlag = false;
819					if(changeObj.pieceOfItemNum && _pieceOfItemNum !== changeObj.pieceOfItemNum) {
820						doFlag = true;
821						_pieceOfItemNum = changeObj.pieceOfItemNum;
822					}
823					if(changeObj.slidePieceNum && _slidePieceNum !== changeObj.slidePieceNum) {
824						doFlag = true;
825						_slidePieceNum = changeObj.slidePieceNum;
826					}
827					if(doFlag) {
828						_reset();
829					}
830				};
831				
832				_that.setPieceOfItemNum = function(newNum) {
833					if (_pieceOfItemNum !== newNum) {
834						_pieceOfItemNum = newNum;
835						_reset();
836					}
837				};
838
839				_that.setSlidePieceNum = function(newNum) {
840					if (_slidePieceNum !== newNum) {
841						_slidePieceNum = newNum;
842						_reset();
843					}
844				};
845				
846				_that.instantPosNum = function(newNum) {
847					_instantPosNum(newNum);
848				};
849				
850				_that.slideMoveItemNum = function(newNum) {
851					_slideMoveItemNum(newNum);
852				};
853				
854				_that.backOriginal = function() {
855					_$wrap.removeData();
856					_$wrap.replaceWith(_$originalHtml);
857				};
858
859				$.data(_$wrap.get(0), _evtNameSpace, {
860					'sfSlider': _that
861				});
862
863				_init();
864			});
865			
866			
867			/*===========================================================================
868			↓イージングのcssを取得↓
869			===========================================================================*/
870			var _getEasingCss = function(easingStr) {
871				var easingPairObj = {
872					"linear"           : "linear",
873					
874					"swing"            : "ease-out",
875					
876					"easeInSine"       : "cubic-bezier(0.47, 0, 0.745, 0.715)",
877					"easeOutSine"      : "cubic-bezier(0.39, 0.575, 0.565, 1)",
878					"easeInOutSine"    : "cubic-bezier(0.445, 0.05, 0.55, 0.95)",
879					
880					"easeInQuad"       : "cubic-bezier(0.55, 0.085, 0.68, 0.53)",
881					"easeOutQuad"      : "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
882					"easeInOutQuad"    : "cubic-bezier(0.455, 0.03, 0.515, 0.955)",
883					
884					"easeInCubic"      : "cubic-bezier(0.55, 0.055, 0.675, 0.19)",
885					"easeOutCubic"     : "cubic-bezier(0.215, 0.61, 0.355, 1)",
886					"easeInOutCubic"   : "cubic-bezier(0.645, 0.045, 0.355, 1)",
887					
888					"easeInQuart"      : "cubic-bezier(0.895, 0.03, 0.685, 0.22)",
889					"easeOutQuart"     : "cubic-bezier(0.165, 0.84, 0.44, 1)",
890					"easeInOutQuart"   : "cubic-bezier(0.77, 0, 0.175, 1)",
891					
892					"easeInQuint"      : "cubic-bezier(0.755, 0.05, 0.855, 0.06)",
893					"easeOutQuint"     : "cubic-bezier(0.23, 1, 0.32, 1)",
894					"easeInOutQuint"   : "cubic-bezier(0.86, 0, 0.07, 1)",
895					
896					"easeInExpo"       : "cubic-bezier(0.95, 0.05, 0.795, 0.035)",
897					"easeOutExpo"      : "cubic-bezier(0.19, 1, 0.22, 1)",
898					"easeInOutExpo"    : "cubic-bezier(1, 0, 0, 1)",
899					
900					"easeInCirc"       : "cubic-bezier(0.6, 0.04, 0.98, 0.335)",
901					"easeOutCirc"      : "cubic-bezier(0.075, 0.82, 0.165, 1)",
902					"easeInOutCirc"    : "cubic-bezier(0.785, 0.135, 0.15, 0.86)",
903					
904					"easeInBack"       : "cubic-bezier(0.6, -0.28, 0.735, 0.045)",
905					"easeOutBack"      : "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
906					"easeInOutBack"    : "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
907					
908					"easeInElastic"    : "linear", //null
909					"easeOutElastic"   : "linear", //null
910					"easeInOutElastic" : "linear", //null
911					
912					"easeInBounce"     : "linear", //null
913					"easeOutBounce"    : "linear", //null
914					"easeInOutBounce"  : "linear" //null
915				};
916				return easingPairObj[easingStr];
917			};
918
919
920			return this;
921		}
922	});
923})(jQuery);
924
925
926

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.