; (function ($, window, document, undefined) { //'use strict'; var pluginName = 'vivaTimeline';//Plugin名稱 //Timeline建構式 var Timeline = function (element, opt) { //私有變數 this.target = element; this.carouselInterval; this.checkImgLoad; this.imgLoad = false; //初始化 this._init(opt); this._event(); } //ImportKML2D預設參數 Timeline.options = { carousel: true, carouselTime: 10000 } //Timeline私有方法 Timeline.prototype = { //初始化 _init: function (_opt) { //合併自訂參數與預設參數 var self = this; self.options = $.extend(true, {}, Timeline.options, _opt); self.target .find('.events-body') .each(function(){ var rowcount = $(this).find('.row').length; if(rowcount > 1) { var html = "
    "; for(var i = 0; i < rowcount; i++){ html += "
  1. "; } html += "
"; $(this) .siblings('.events-footer') .html(html) .find('li') .first() .addClass('active'); } }); self.target .find('.events-body') .each(function(){ $(this) .find('.row') .first() .show() .siblings() .hide(); }); self.target .find('img').on('load', function(){ self.target .find('.events-body') .each(function(){ var maxHeight = 0; $(this) .find('.row') .each(function(){ if($(this).height() > maxHeight){ maxHeight = $(this).height(); } }); $(this).find('.row').height(maxHeight); }); }); }, //綁定事件 _event: function () { var self = this; self.target .find('.events-header') .click(function(){ $(this) .siblings('.events-body').slideToggle() .end() .siblings('.events-footer').toggle(); }); self.target .find('.events-footer li') .click(function(){ self._carousel($(this)); }); if(self.options.carousel){ self.carouselInterval = setInterval(function(){ self._carousel(); }, self.options.carouselTime); self.target .find('.events') .hover(function(){ clearInterval(self.carouselInterval); self.carouselInterval = null; }, function(){ if(self.carouselInterval == undefined){ self.carouselInterval = setInterval(function(){ self._carousel(); }, self.options.carouselTime); } }); } }, //自動輪播 _carousel: function(_container) { var self = this; if(_container == undefined){ self.target .find('.events-footer .active') .each(function(){ var nextTarget; if($(this).is(':last-child')){ nextTarget = $(this).siblings().first(); } else{ nextTarget = $(this).next(); } self._carousel(nextTarget); }); } else{ var target = _container.data().target; _container .addClass('active') .siblings() .removeClass('active'); _container .closest('.events-footer') .siblings('.events-body') .find('.row') .eq(target).show() .siblings().hide(); } } } //公開方法 $.fn[pluginName] = function (options, args) { var timeline; this.each(function () { timeline = new Timeline($(this), options); }); return this; } })(jQuery, window, document);