Authored by 郝肖肖

首页频道 其余楼层 事件绑定

... ... @@ -3,7 +3,7 @@
{{#data}}
<div class="banner-list">
<a href="{{url}}">
<img src="{{image src 640 200}}" alt="">
<img class="lazy" data-original="{{image src 640 200}}" alt="">
</a>
</div>
{{/data}}
... ... @@ -12,7 +12,7 @@
{{#data}}
<li class="swiper-slide">
<a href="{{url}}">
<img src="{{image src 640 200}}" alt="">
<img class="lazy" data-original="{{image src 640 200}}" alt="">
</a>
</li>
{{/data}}
... ...
{{#data}}
<div style="background-image:url({{src}})" class="divide-image"></div>
<div style="background-image:url({{image src 640 30}})" class="divide-image"></div>
{{/data}}
\ No newline at end of file
... ...
... ... @@ -2,7 +2,7 @@
<div class="hot-single">
{{> ../common/floor-header-more}}
{{> ./new-floor-banner}}
<div class="hot-single-goods-list" {{#background}}style="background-image: url({{src}})"{{/background}}>
<div class="hot-single-goods-list" {{#background}}style="background-image: url({{image src 640 200}})"{{/background}}>
<ul>
{{#list}}
<li class="hot-single-goods">
... ...
... ... @@ -3,27 +3,27 @@
{{> ../common/floor-header-more}}
{{#list.[0]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 268 360}}" alt="left" class="left" />
<img class="lazy left" data-original="{{image src 268 360}}" alt="left">
</a>
{{/list.[0]}}
{{#list.[1]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 186 180}}" alt="right1" class="right" />
<img class="lazy right" data-original="{{image src 186 180}}" alt="right1">
</a>
{{/list.[1]}}
{{#list.[2]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 186 180}}" alt="right2" class="right" />
<img class="lazy right" data-original="{{image src 186 180}}" alt="right2">
</a>
{{/list.[2]}}
{{#list.[3]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 186 180}}" alt="right3" class="right" />
<img class="lazy right" data-original="{{image src 186 180}}" alt="right3">
</a>
{{/list.[3]}}
{{#list.[4]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 186 180}}" alt="right4" class="right" />
<img class="lazy right" data-original="{{image src 186 180}}" alt="right4">
</a>
{{/list.[4]}}
</div>
... ...
... ... @@ -3,7 +3,7 @@
{{> ../common/floor-header-more}}
<div class="new-user-icon">新人专享</div>
{{> ./new-floor-banner}}
<div class="new-user-goods-container" {{#background}} style="background-image: url({{src}})" {{/background}}>
<div class="new-user-goods-container" {{#background}} style="background-image: url({{image src 640 200}})" {{/background}}>
<ul>
{{#list}}
<li class="new-user-good">
... ...
... ... @@ -5,7 +5,7 @@
{{#list.[0]}}
<a href="{{url}}" class="float-container time-floor">
<img src="{{image src 269 360}}" alt="sale-limit" class="sale-floor-limit">
<img data-original="{{image src 269 360}}" alt="sale-limit" class="lazy sale-floor-limit">
<div class="sale-floor-time" data-time={{end_time}}>
<p class="limit-title"><i class="icon"></i>限时特卖</p>
<div class="limit">
... ... @@ -19,22 +19,22 @@
{{#list.[1]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 284 180}}" alt="sale-break" class="sale-floor-break">
<img data-original="{{image src 284 180}}" alt="sale-break" class="lazy sale-floor-break">
</a>
{{/list.[1]}}
{{#list.[2]}}
<a href="{{url}}" class="sale-floor-entry">
<img src="{{image src 87 180}}" alt="sale-break" >
<img data-original="{{image src 87 180}}" alt="sale-break" class="lazy" >
</a>
{{/list.[2]}}
{{#list.[3]}}
<a href="{{url}}" class="float-container">
<img src="{{image src 284 180}}" alt="sale-discount" class="sale-floor-discount">
<img data-original="{{image src 284 180}}" alt="sale-discount" class="lazy sale-floor-discount">
</a>
{{/list.[3]}}
{{#list.[4]}}
<a href="{{url}}" class="sale-floor-entry">
<img src="{{image src 87 180}}" alt="sale-break" >
<img data-original="{{image src 87 180}}" alt="sale-break" class="lazy">
</a>
{{/list.[4]}}
</div>
... ...
... ... @@ -2,7 +2,7 @@
<div class="three-picture clearfix">
{{#list}}
<a href="{{url}}">
<img src="{{image src 210 280}}">
<img class="lazy" data-original="{{image src 210 280}}">
</a>
{{/list}}
</div>
... ...
... ... @@ -4,7 +4,7 @@
{{> ./new-floor-banner}}
<div class="vip-only-goods-list" {{#background}} style="background-image: url({{src}})" {{/background}}>
<div class="vip-only-goods-list" {{#background}} style="background-image: url({{image src 640 400}})" {{/background}}>
<ul>
{{#list}}
<a href="//m.yohobuy.com/product/show_{{product_skn}}">
... ...
... ... @@ -132,84 +132,238 @@ $('.banner-center-swiper').each(function() {
}
});
// 异步获取首屏其余楼层
var getResourceContent = function() {
// 店铺推荐人数和收藏初始查询
var checkShop = function() {
var shopIds = [];
$('.recom-shop').each(function() {
shopIds.push($(this).attr('shopId'));
});
shopIds.length &&
$.ajax({
type: 'GET',
url: '/channel/getResourceContent',
async: false, // 改为false,否则下面初始化会找不到元素对象
type: 'POST',
url: '/channel/shopRecom',
data: {
gender: $mobileWrap.data('channel')
shopIds: shopIds.join(','),
},
}).then(function(result) {
var resourceTemplate = channelContentHbs({content: result});
if (result.code === 200) {
for (var i = 0, elem;
(elem = result.data[i]) != null; i++) {
var a = $('.recom-shop[shopId = ' + elem.id + ']');
$resourceContent.append(resourceTemplate);
lazyLoad($resourceContent.find('img.lazy:not([src])'));
a.find('.faved-num').text(elem.collectionNum + '人已收藏');
if (elem.favorite) {
a.find('.fav-no').hide();
a.find('.fav-yes').show();
}
}
}
});
};
getResourceContent();
// sale倒计时
var saleTime = function(elem, offsetTime) {
var hour = parseInt(offsetTime / (60 * 60), 10),
minute = parseInt(offsetTime % (60 * 60) / 60, 10),
second = offsetTime % 60;
// 热门品牌滑动
if ($('.brands-swiper').find('li').length > 1) {
new Swiper('.brands-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'brands-list',
slideElement: 'li'
});
}
if (offsetTime <= -1) { // 结束倒计时刷新状态
$(elem).find('.limit').hide();
}
// 推荐搭配滑动
if ($('.recommend-swiper').find('li').length > 1) {
new Swiper('.recommend-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'recommend-list',
slideElement: 'li'
});
}
if (offsetTime >= -1) {
$(elem).find('.hour').text(hour < 0 ? '00' : (hour < 10 ? ('0' + hour) : hour));
$(elem).find('.minute').text(minute < 0 ? '00' : (minute < 10 ? ('0' + minute) : minute));
$(elem).find('.second').text(second < 0 ? '00' : (second < 10 ? ('0' + second) : second));
// 潮品话题轮播
if ($('.trend-topic-swiper').find('li').size() > 1) {
new Swiper('.trend-topic-swiper', {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.trend-topic-content .pagination-inner'
});
}
if (offsetTime <= -1) { // 结束倒计时刷新状态
$(elem).find('.limit').hide();
} else {
setTimeout(function() {
saleTime(elem, --offsetTime);
}, 1000);
}
}
};
// 新人专享轮播
if ($('.fresh-list-swiper').find('li').size() > 1) {
new Swiper('.fresh-list-swiper', {
lazyLoading: true,
lazyLoadingInPrevNext: true,
grabCursor: true,
slidesPerView: 'auto',
slideElement: 'li',
watchSlidesVisibility: true
});
}
function ajaxResource() {
// 热门品牌滑动
if ($('.brands-swiper').find('li').length > 1) {
new Swiper('.brands-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'brands-list',
slideElement: 'li'
});
}
// 推荐搭配滑动
if ($('.recommend-swiper').find('li').length > 1) {
new Swiper('.recommend-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'recommend-list',
slideElement: 'li'
});
}
// 潮流上装/经典裤装等轮播
$('.category-swiper').each(function(i) {
swiperClass = 'category-swiper' + i;
$(this).addClass(swiperClass);
if ($('.' + swiperClass).find('.swiper-slide').size() > 1) {
new Swiper('.' + swiperClass, {
// 潮品话题轮播
if ($('.trend-topic-swiper').find('li').size() > 1) {
new Swiper('.trend-topic-swiper', {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.' + swiperClass + ' .pagination-inner'
pagination: '.trend-topic-content .pagination-inner'
});
}
// 新人专享轮播
if ($('.fresh-list-swiper').find('li').size() > 1) {
new Swiper('.fresh-list-swiper', {
lazyLoading: true,
lazyLoadingInPrevNext: true,
grabCursor: true,
slidesPerView: 'auto',
slideElement: 'li',
watchSlidesVisibility: true
});
}
});
// 潮流上装/经典裤装等轮播
$('.category-swiper').each(function(i) {
swiperClass = 'category-swiper' + i;
$(this).addClass(swiperClass);
if ($('.' + swiperClass).find('.swiper-slide').size() > 1) {
new Swiper('.' + swiperClass, {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.' + swiperClass + ' .pagination-inner'
});
}
});
// 店铺推荐滑动效果
if ($('.shop-recom-swiper-container').find('li').length > 1) {
new Swiper('.shop-recom-swiper-container', {
centeredSlides: true,
slidesPerView: 'auto',
paginationClickable: true,
slideActiveClass: 'recom-active',
});
}
// 店铺收藏 || 取消收藏
var $collect = $('.fav-container');
$collect.on('touchstart', function() {
var opt = $(this).hasClass('fav-yes') ? 'cancel' : 'ok';
var self = $(this);
var num = parseInt(self.parent().find('.faved-num').html());
$.ajax({
method: 'get',
url: location.protocol + '//m.yohobuy.com/product/opt/favoriteBrand',
data: {
id: self.parent().attr('shopId'),
opt: opt,
type: 'shop',
},
xhrFields: {
withCredentials: true
},
success: function(data) {
var url = '';
if (data.code === 200) {
if (self.hasClass('fav-yes')) {
self.hide();
self.prev().show();
num--;
self.parent().find('.faved-num').html(num + '人已收藏');
tip.show('取消收藏成功!');
} else {
self.hide();
self.next().show();
num++;
self.parent().find('.faved-num').html(num + '人已收藏');
tip.show('收藏成功!');
}
}
if (data.code === 400) {
url = data.data;
location.href = url;
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
});
// vip专属等级查询
$.ajax({
method: 'POST',
url: location.protocol + '//m.yohobuy.com/channel/userVip',
data: {
channel: 1,
},
success: function(data) {
var vip = $('.vip-only');
if (data.code === 200 && Number(data.current_vip_level) !== 0) {
vip.show();
vip.find('.vip' + data.current_vip_level).show();
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
checkShop();
var limitFloor = $('.sale-floor-time');
limitFloor.each(function() {
var endTime = $(this).attr('data-time'),
// ~~两次取反位运算就是取整
limit = ~~((endTime * 1000 - Date.now()) / 1000);
saleTime(this, limit);
});
}
// 异步获取首屏其余楼层
var getResourceContent = function() {
$.ajax({
type: 'GET',
url: '/channel/getResourceContent',
data: {
gender: $mobileWrap.data('channel')
},
}).then(function(result) {
var resourceTemplate = channelContentHbs({content: result});
$resourceContent.append(resourceTemplate);
lazyLoad($resourceContent.find('img.lazy:not([src])'));
ajaxResource();
});
};
setTimeout(function() {
getResourceContent();
}, 50);
// logo动画
function tsAnimate() {
... ... @@ -262,155 +416,6 @@ window.setCookie('_Channel', $mobileWrap.data('channel'), {
domain: '.yohobuy.com'
});
// 店铺推荐滑动效果
if ($('.shop-recom-swiper-container').find('li').length > 1) {
new Swiper('.shop-recom-swiper-container', {
centeredSlides: true,
slidesPerView: 'auto',
paginationClickable: true,
slideActiveClass: 'recom-active',
});
}
// 店铺推荐人数和收藏初始查询
var checkShop = function() {
var shopIds = [];
$('.recom-shop').each(function() {
shopIds.push($(this).attr('shopId'));
});
shopIds.length &&
$.ajax({
type: 'POST',
url: '/channel/shopRecom',
data: {
shopIds: shopIds.join(','),
},
}).then(function(result) {
if (result.code === 200) {
for (var i = 0, elem;
(elem = result.data[i]) != null; i++) {
var a = $('.recom-shop[shopId = ' + elem.id + ']');
a.find('.faved-num').text(elem.collectionNum + '人已收藏');
if (elem.favorite) {
a.find('.fav-no').hide();
a.find('.fav-yes').show();
}
}
}
});
};
checkShop();
// 店铺收藏 || 取消收藏
var $collect = $('.fav-container');
$collect.on('touchstart', function() {
var opt = $(this).hasClass('fav-yes') ? 'cancel' : 'ok';
var self = $(this);
var num = parseInt(self.parent().find('.faved-num').html());
$.ajax({
method: 'get',
url: location.protocol + '//m.yohobuy.com' + '/product/opt/favoriteBrand',
data: {
id: self.parent().attr('shopId'),
opt: opt,
type: 'shop',
},
xhrFields: {
withCredentials: true
},
success: function(data) {
var url = '';
if (data.code === 200) {
if (self.hasClass('fav-yes')) {
self.hide();
self.prev().show();
num--;
self.parent().find('.faved-num').html(num + '人已收藏');
tip.show('取消收藏成功!');
} else {
self.hide();
self.next().show();
num++;
self.parent().find('.faved-num').html(num + '人已收藏');
tip.show('收藏成功!');
}
}
if (data.code === 400) {
url = data.data;
location.href = url;
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
});
// vip专属等级查询
$.ajax({
method: 'POST',
url: location.protocol + '//m.yohobuy.com/channel/userVip',
data: {
channel: 1,
},
success: function(data) {
var vip = $('.vip-only');
if (data.code === 200 && Number(data.current_vip_level) !== 0) {
vip.show();
vip.find('.vip' + data.current_vip_level).show();
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
// sale倒计时
var saleTime = function(elem, offsetTime) {
var hour = parseInt(offsetTime / (60 * 60), 10),
minute = parseInt(offsetTime % (60 * 60) / 60, 10),
second = offsetTime % 60;
if (offsetTime <= -1) { // 结束倒计时刷新状态
$(elem).find('.limit').hide();
}
if (offsetTime >= -1) {
$(elem).find('.hour').text(hour < 0 ? '00' : (hour < 10 ? ('0' + hour) : hour));
$(elem).find('.minute').text(minute < 0 ? '00' : (minute < 10 ? ('0' + minute) : minute));
$(elem).find('.second').text(second < 0 ? '00' : (second < 10 ? ('0' + second) : second));
if (offsetTime <= -1) { // 结束倒计时刷新状态
$(elem).find('.limit').hide();
} else {
setTimeout(function() {
saleTime(elem, --offsetTime);
}, 1000);
}
}
};
var limitFloor = $('.sale-floor-time');
limitFloor.each(function() {
var endTime = $(this).attr('data-time'),
// ~~两次取反位运算就是取整
limit = ~~((endTime * 1000 - Date.now()) / 1000);
saleTime(this, limit);
});
require('./maybe-like')();
C_ID = window._ChannelVary[window.cookie('_Channel')];
... ...