185 lines
6.5 KiB
Plaintext
Executable File
185 lines
6.5 KiB
Plaintext
Executable File
<div class="i-annc index-announcement-17">
|
|
|
|
|
|
<h3 class="i-annc__page-title">{{page-title}}</h3>
|
|
|
|
<div class="VivaTimeline">
|
|
<dl>
|
|
|
|
<!--月份 1-->
|
|
<dt>{{date-head}}</dt>
|
|
|
|
<!--左側文章 start-->
|
|
<div class="data" data-level="0" data-list="announcements">
|
|
<dd class=" evenodd clearfix ">
|
|
<div class="circ"></div>
|
|
<div class="time" date-format="%Y-%m">{{postdate}}</div>
|
|
<!--填入日期-->
|
|
<div class="events">
|
|
<div class="events-header">{{title}}</div>
|
|
<!--填入標題-->
|
|
<div class="events-body">
|
|
<div class="row">
|
|
<div class="col-md-6 pull-left">
|
|
<img class="events-object img-responsive img-rounded" src="{{img_src}}"/><!--填入圖片網址--></div>
|
|
<div class="events-desc">{{subtitle}}</div>
|
|
<!--填入描述-->
|
|
</div>
|
|
</div>
|
|
<div class="events-footer">
|
|
<a class="i-annc__title" href="{{link_to_show}}">MORE </a>
|
|
</div>
|
|
<!--可填底部標題 或刪除-->
|
|
</div>
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
{{pagination_goes_here}}
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
jQuery(function(){
|
|
jQuery('.data > dd:odd').addClass(' pos-left');
|
|
jQuery('.data > dd:even').addClass('pos-right');
|
|
});
|
|
</script>
|
|
<script type="text/javascript">
|
|
;
|
|
(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 = "<ol>";
|
|
for (var i = 0; i < rowcount; i++) {
|
|
html += "<li data-target='" + i + "'></li>";
|
|
}
|
|
html += "</ol>";
|
|
$(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);
|
|
</script>
|
|
<script type="text/javascript">
|
|
jQuery(document).ready(function () {
|
|
jQuery('.VivaTimeline').vivaTimeline({carousel: true, carouselTime: 3000});
|
|
});
|
|
</script>
|
|
<script type="text/javascript">
|