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"> </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"> </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.