...
|
...
|
@@ -25,6 +25,8 @@ var winH = $(window).height(), |
|
|
// 默认筛选条件
|
|
|
var defaultOpt = require('./query-param');
|
|
|
|
|
|
var storeOpt = $.extend({}, defaultOpt);
|
|
|
|
|
|
var $listNav = $('#list-nav'),
|
|
|
$swiperSize = $('.swiper-size'),
|
|
|
|
...
|
...
|
@@ -68,6 +70,18 @@ ellipsis.init(); |
|
|
|
|
|
lazyLoad($('img.lazy'));
|
|
|
|
|
|
if ($('.banner-swiper .swiper-slide').length > 1) {
|
|
|
new Swiper('.swiper-container', {
|
|
|
lazyLoading: true,
|
|
|
lazyLoadingInPrevNext: true,
|
|
|
loop: true,
|
|
|
autoplay: 3000,
|
|
|
autoplayDisableOnInteraction: true,
|
|
|
paginationClickable: true,
|
|
|
pagination: '.banner-top .pagination-inner'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
$.each($swiperSize, function(key) {
|
|
|
swipers[key] = new Swiper('#size-swiper-' + key, {
|
|
|
slidesPerView: 'auto'
|
...
|
...
|
@@ -78,6 +92,23 @@ $.each($listNav.find('li'), function(key, item) { |
|
|
$(item).addClass(goodsType[key]);
|
|
|
});
|
|
|
|
|
|
// 判断导航类型
|
|
|
function judgeType(dom) {
|
|
|
var navType;
|
|
|
|
|
|
if (dom.hasClass('coat')) {
|
|
|
navType = 'coat';
|
|
|
} else if (dom.hasClass('trouser')) {
|
|
|
navType = 'trouser';
|
|
|
} else if (dom.hasClass('shoes')) {
|
|
|
navType = 'shoes';
|
|
|
} else {
|
|
|
navType = 'other';
|
|
|
}
|
|
|
|
|
|
return navType;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 筛选注册的回调,筛选子项点击后逻辑
|
|
|
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
|
...
|
...
|
@@ -97,6 +128,10 @@ function search(opt) { |
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($.type(opt) === 'object') {
|
|
|
opt = [opt];
|
|
|
}
|
|
|
|
|
|
if (opt) {
|
|
|
|
|
|
// 筛选项变更则重置reload为true
|
...
|
...
|
@@ -150,17 +185,8 @@ function search(opt) { |
|
|
$.extend(defaultOpt, ext); // 扩展筛选项
|
|
|
}
|
|
|
|
|
|
|
|
|
// 导航类别
|
|
|
if ($pre.hasClass('coat')) {
|
|
|
navType = 'coat';
|
|
|
} else if ($pre.hasClass('trouser')) {
|
|
|
navType = 'trouser';
|
|
|
} else if ($pre.hasClass('shoes')) {
|
|
|
navType = 'shoes';
|
|
|
} else {
|
|
|
navType = 'other';
|
|
|
}
|
|
|
navType = judgeType($pre);
|
|
|
|
|
|
nav = navInfo[navType];
|
|
|
page = nav.page + 1;
|
...
|
...
|
@@ -204,7 +230,12 @@ function search(opt) { |
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (data === ' ') {
|
|
|
if ($container.hasClass('hide')) {
|
|
|
$container.siblings().addClass('hide');
|
|
|
$container.removeClass('hide');
|
|
|
}
|
|
|
|
|
|
if (data === '') {
|
|
|
nav.end = true;
|
|
|
|
|
|
if (nav.reload) {
|
...
|
...
|
@@ -250,7 +281,9 @@ function search(opt) { |
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/product/sale/filter',
|
|
|
data: defaultOpt,
|
|
|
data: $.extend(defaultOpt, {
|
|
|
saleType: '1'
|
|
|
}),
|
|
|
success: function(data) {
|
|
|
$goodsContainer.append(data);
|
|
|
|
...
|
...
|
@@ -262,6 +295,8 @@ $.ajax({ |
|
|
// 切换active状态到$pre上
|
|
|
$pre.addClass('active');
|
|
|
$pre.siblings('.filter').removeClass('active');
|
|
|
|
|
|
$('#size-swiper-' + $pre.index()).show();
|
|
|
},
|
|
|
missStatus: true
|
|
|
});
|
...
|
...
|
@@ -278,11 +313,6 @@ $listNav.on('touchend touchcancel', function(e) { |
|
|
nav, sortId, navType, $active;
|
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
if (typeof $this === 'undefined' || $this.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($this.hasClass('filter')) {
|
|
|
|
|
|
// 筛选面板切换状态
|
...
|
...
|
@@ -294,29 +324,20 @@ $listNav.on('touchend touchcancel', function(e) { |
|
|
$this.removeClass('active');
|
|
|
} else {
|
|
|
$pre = $this.siblings('.active');
|
|
|
|
|
|
$swiperSize.hide();
|
|
|
$pre.removeClass('active');
|
|
|
$this.addClass('active');
|
|
|
$swiperSize.hide();
|
|
|
|
|
|
filter.showFilter();
|
|
|
}
|
|
|
} else {
|
|
|
if ($this.hasClass('coat')) {
|
|
|
navType = 'coat';
|
|
|
} else if ($this.hasClass('trouser')) {
|
|
|
navType = 'trouser';
|
|
|
} else if ($this.hasClass('shoes')) {
|
|
|
navType = 'shoes';
|
|
|
} else {
|
|
|
navType = 'other';
|
|
|
}
|
|
|
|
|
|
// 导航类别
|
|
|
navType = judgeType($this);
|
|
|
|
|
|
nav = navInfo[navType];
|
|
|
|
|
|
if ($this.hasClass('active')) {
|
|
|
return;
|
|
|
} else {
|
|
|
if (!($this.hasClass('active'))) {
|
|
|
|
|
|
$active = $this.siblings('.active');
|
|
|
|
|
|
$pre = $this; // $pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项
|
...
|
...
|
@@ -342,10 +363,16 @@ $listNav.on('touchend touchcancel', function(e) { |
|
|
case 'shoes':
|
|
|
$shoesgc.removeClass('hide');
|
|
|
break;
|
|
|
default:
|
|
|
case 'other':
|
|
|
$othergc.removeClass('hide');
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 重置筛选项
|
|
|
filter.resetFilter();
|
|
|
defaultOpt = $.extend({}, storeOpt);
|
|
|
}
|
|
|
|
|
|
$active.removeClass('active');
|
...
|
...
|
@@ -378,15 +405,8 @@ $swiperSize.on('touchend touchcancel', function(e) { |
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($parentType.hasClass('coat')) {
|
|
|
navType = 'coat';
|
|
|
} else if ($parentType.hasClass('trouser')) {
|
|
|
navType = 'trouser';
|
|
|
} else if ($parentType.hasClass('shoes')) {
|
|
|
navType = 'shoes';
|
|
|
} else {
|
|
|
navType = 'other';
|
|
|
}
|
|
|
// 导航类别
|
|
|
navType = judgeType($parentType);
|
|
|
|
|
|
nav = navInfo[navType];
|
|
|
|
...
|
...
|
@@ -396,7 +416,6 @@ $swiperSize.on('touchend touchcancel', function(e) { |
|
|
nav.reload = true;
|
|
|
$active = $this.siblings('.active');
|
|
|
$pre = $parentType; // $pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项
|
|
|
|
|
|
$active.removeClass('active');
|
|
|
$this.addClass('active');
|
|
|
sortId = $parentType.data('id');
|
...
|
...
|
|