/** * 首页 * @author: yyq<yanqing.yang@yoho.cn> * @date: 2016/05/31 */ var $ = require('yoho-jquery'), lazyLoad = require('yoho-jquery-lazyload'); var $limitList = $('.limit-main .good-list'), $limitBrand = $('.limit-main .brand-list'), $fixNav = $('.sort-layer .full-line'), $navPar; var limitTime = []; require('../common'); require('../plugins/slider'); require('./outlets/special'); // 奥莱页移除yoho logo $('.main-logo').remove(); function convertTime(time) { var anHour = 3600000, aMinute = 60000, aSecond = 1000, showTime = '', d = 0, h = 0, m = 0, s = 0; if (time > 1000) { d = Math.floor(time / anHour / 24); h = Math.floor(time / anHour % 24); m = Math.floor(time / aMinute % 60); s = Math.floor(time / aSecond % 60); showTime += d > 0 ? d + '天' : ''; showTime += h > 0 ? h + '时' : ''; showTime += m > 0 ? m + '分' : ''; showTime += s > 0 ? s + '秒' : ''; } return showTime; } function setPageTime() { var i, text, showTime, $par; for (i = 0; i < limitTime.length; i++) { if (limitTime[i].time < 0) { return; } limitTime[i].time -= 1000; showTime = convertTime(limitTime[i].time); if (showTime) { text = showTime; if (limitTime[i].pre) { text = limitTime[i].pre + ' ' + text; } } else { $par = limitTime[i].dom.closest('.item-info').parent(); $par.find('a').attr('onclick', 'return false;'); text = '活动已结束'; } limitTime[i].dom.text(text); } } function limitPageSwitch(dom, num) { dom.animate({ 'margin-left': (-num * 10) + '0%' }, 'fast').data({ page: num }); } // 上线预告&潮品推荐 公共处理方法 function formatExtraList(items, num) { var html = '', list = [], i = 0; if (!items.length) { return; } items.each(function() { if ((i % num) === 0) { list.push(''); } list[list.length - 1] += items[i].outerHTML; i++; }); if (list.length > 3) { list.length = 3; } for (i = 0; i < list.length; i++) { html += '<div class="list-page">' + list[i] + '</div>'; } return { length: list.length, html: html }; } function extraInfo() { var good = formatExtraList($limitList.find('.good-item'), 5), brand = formatExtraList($limitBrand.find('.brand-item'), 9); if (good && good.length > 1) { $limitList.html(good.html).data({max: good.length}); $limitList.siblings('.page-btns').show(); } if (brand && brand.length > 1) { $limitBrand.html(brand.html).data({max: brand.length}); $limitBrand.siblings('.page-btns').show(); } } if ($fixNav.length) { $navPar = $fixNav.parent(); $(window).scroll(function() { var navTop = $navPar.position().top; if ($(this).scrollTop() >= navTop) { $fixNav.addClass('fixed'); } else { $fixNav.removeClass('fixed'); } }); } // 倒计时 $('.time').each(function() { var data = $(this).data(); if (data.limit) { limitTime.push({ dom: $(this), time: data.limit, pre: data.pre ? data.pre : '' }); } }); $('.page-btns > label').click(function() { var nowTime = new Date().getTime(), $dom, data, max, page; if ($(this).closest('.good-page-btns').length) { $dom = $limitList; } else { $dom = $limitBrand; } data = $dom.data(); max = data.max ? data.max : 1; page = data.page ? data.page : 0; if (data.time && nowTime - data.time < 500) { return; } $dom.data({ time: nowTime }); if ($(this).hasClass('pre-page-btn')) { page += max - 1; } else { page += 1; } page = page % max; limitPageSwitch($dom, page); $(window).trigger('scroll'); }); setInterval(setPageTime, 1000); $('.slide-container').slider({ orient: true }); extraInfo(); lazyLoad($('img.lazy'), { failure_limit: 20 });