shop-index.js
3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
* 首页
* @author: bikai<kai.bi@yoho.cn>
* @date: 2016/4/26
*/
var $ = require('yoho.jquery'),
lazyLoad = require('yoho.lazyload'),
product = require('../product/product');
var $shopIntro = $('.shop-intro'),
$shopCollect = $('.shop-collect'),
$shopSearch = $('#shop-search-form'),
$queryKey = $('#shop-query-key'),
$sliderLeft = $('.slider-left'),
$allGoods = $('.all-goods'),
$fixedArea = $allGoods.find('.fixed-area'),
fixedAreaTop = $fixedArea.offset() ? $fixedArea.offset().top : 0;
// Pjax
require('yoho.pjax');
require('../common/slider');
require('../product/list');
product.init(4);
lazyLoad($('img.lazy'));
if ($sliderLeft.length) {
$sliderLeft.slider();
}
$shopIntro.on('click', function() {
$('.pop-shop-intro').show();
$('.mask').show();
});
$('.close-btn, .mask').on('click', function() {
$('.pop-shop-intro').hide();
$('.mask').hide();
});
// 收藏店铺
function colloectAction() {
var $colloectIcon = $shopCollect.find('.shop-collect-ico'),
$colloectText = $shopCollect.find('.shop-collect-text'),
isFavorite = $colloectIcon.hasClass('on'),
needColloect = window.cookie('needColloect');
$.ajax({
type: 'post',
url: '/shoplist/setFavorite',
data: {
isFavorite: isFavorite ? 0 : 1,
needColloect: needColloect,
shopId: $shopCollect.data('id')
},
success: function(res) {
if (res.code === 200) {
if (isFavorite) {
$colloectIcon.removeClass('on');
$colloectText.html('收藏');
} else {
$colloectIcon.addClass('on');
$colloectText.html('已收藏');
}
if (needColloect) {
$colloectIcon.addClass('on');
$colloectText.html('已收藏');
}
} else if (res.code === 401) {
window.setCookie('needColloect', '1', {
path: '/',
domain: '.yohobuy.com',
expires: 90
});
location.href = res.url;
}
}
});
}
$shopCollect.on('click', function() {
colloectAction();
});
if (window.cookie('needColloect') * 1 === 1 && window.getUid()) {
colloectAction();
window.setCookie('needColloect', '', {
path: '/',
domain: '.yohobuy.com',
expires: 1
});
}
$('.shop-query-submit').click(function() {
if ($queryKey.val()) {
$shopSearch.submit();
}
});
// 全部商品使用 pjax 翻页
$allGoods.pjax('a.pjax', '.goods-wrap', {
timeout: 5000,
scrollTo: false // 默认滚动没有动画,禁止掉
}).on('pjax:end', function() {
product.init(4);
lazyLoad($('img.lazy'));
$fixedArea = $allGoods.find('.fixed-area'); // 翻页后 fixed-area 区域有变化,需要更新选择器
// 分页后移动到全部商品
$('html, body').animate({
scrollTop: $allGoods.offset().top - 30
});
}).on('click', '.menu-list li', function() {
var $this = $(this);
$this.siblings().removeClass('on');
$this.addClass('on');
});
$(window).on('scroll', function() {
var scrollTop = $(this).scrollTop();
if (scrollTop > fixedAreaTop) {
$fixedArea.css({
position: 'fixed',
top: 0
});
} else {
$fixedArea.css({
position: 'static',
top: 0
});
}
});