/* * 안녕하세요 코드팩토리입니다. http://codefactory.kr, [프로그램 개발문의] master@codefactory.kr * 이 프로그램은 아무런 제약없이 복사/수정/재배포 하셔도 되며 주석을 지우셔도 됩니다. * 감사합니다. */ // 모바일 기기에서 터치 swipe(플리킹)로, PC에서는 mousemove로 패널을 좌우 슬라이딩 할 수 있게 해주는 plugin 입니다. ;(function($, window, document, undefined) { // plugin 이름, default option 설정 var pluginName = 'cfSlidePanel', defaults = { speed: 400, // 슬라이딩 속도, 밀리세컨드 단위의 숫자 또는 jQuery.animate()에 사용가능한 'slow', 'fast' 등 문자열 touchMoveLength: 100, // px단위, 최소 얼마만큼 touchmove를 해야 패널을 움직일지 기준이 되는 길이 getIndex: null, // navigator를 만들 때 사용할 수 있는 index를 얻어내는 callback // function(index) { alert(index); } 와 같이 등록하면 슬라이드 애니메이션에 대한 callback으로 패널의 index를 얻을 수 있음(zero based index), prevBtn: '.prev', nextBtn: '.next' }; // 터치 관련 변수 var startMarginLeft = 0, startX = 0, curX = 0, prevCurX = 0; // plugin constructor function Plugin(element, options) { this.element = element; this.options = $.extend({}, defaults, options); this._defaults = defaults; this._name = pluginName; this.init(); } // initialization logic Plugin.prototype.init = function() { var $this = $(this.element), options = this.options, panels = $this.find('.panel'), panelLength = panels.length, panelWidth = $this.width(); // 일단 가리고 ul 생성 후 li에 넣음 panels.hide(); // ul 생성 후 container에 append $('