zoomla
Version:
16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统
77 lines (74 loc) • 3.31 kB
JavaScript
(function ($) {
var default_setting = {
cardw: 130,
cardh: 40,
cardn: 7,
margin: 0
}
function effect() {
var target = this;
target.find('i.left').addClass('zi zi_forLeft');
target.find('i.right').addClass('zi zi_forRight');
target.find('.slide-wrap').hover(function () {
},
function () {
target.find('i').removeClass('i-active');
target.find('.slide').addClass('slide-active-r');
target.find('.slide').addClass('slide-active-l');
});
target.find('.right').hover(
function () { },
function () {
target.find('.slide').removeClass('slide-active-r');
});
target.find('.left').hover(
function () { },
function () {
target.find('.slide').removeClass('slide-active-l');
});
}
function init(cus_setting) {
var init_setting = $.extend({},
default_setting, cus_setting || {});
var slidewraph = init_setting.cardh + 3;
var covered = init_setting.cardw - 33
var boxw = init_setting.cardw * init_setting.cardn - covered * 2;
var singlemove = init_setting.cardw * (init_setting.cardn - 2);
var listn = init_setting.JSON.length;
var boundary = init_setting.cardw * (listn) - singlemove;
var target = this;
var sliderframestring = '<div class =\'slide-wrap\'><div class=\'border\'><div class=\'slide\'><div class=\'shift right\'></div><i class=\'shift right\'></i><div class=\'shift left\'></div><i class =\'shift left\'></i><ul><li style="width:130px;background-color:#f7f7f7;"></li><li style="display:none;"></li></ul></div></div></div>';
var sliderhtml = $(sliderframestring);
sliderhtml.appendTo(target);
$.each(init_setting.JSON,
function (i, field) {
target.find('ul>li:first').after('<li class="nav-item" data-title="' + field.name + '"><div name="label" class=\'title\'>' + (field.name == '' ? "全部标签" : field.name) + '</div></li>');
});
target.width(boxw);
target.find('.slide-wrap').height(slidewraph);
target.find('ul').css({
left: -covered
});
target.find('.nav-item').width(init_setting.cardw);
target.find('li').height(init_setting.cardh);
target.find('.title').width(init_setting.cardw);
effect.call(target);
var movement = 0;
target.find('.right').click(function (event) {
if (Math.abs(movement) < boundary) movement -= singlemove;
target.find('ul').hover().css('transform', 'translateX(' + movement + 'px)');
});
target.find('.left').click(function (event) {
if (movement < 0) movement += singlemove;
target.find('ul').hover().css('transform', 'translateX(' + movement + 'px)');
});
if (init_setting.cb && typeof (init_setting.cb) == "function") { init_setting.cb(); }
}
$.fn.slider = function (setting) {
if (setting && typeof setting === 'object') {
init.call(this, setting);
} else if (!setting) {
init.call(this);
}
};
})(jQuery)