Authored by hf

do gulp dist gzip css and js to test

framework @ 75bbc3b0
Subproject commit 119c247f5cf929aa1e059e40609bb16dd6b58f05
Subproject commit 75bbc3b075de19f239532f60c5995d06c5f814e2
... ...
define("index", ["zepto","lazyload","swiper","mlellipsis","index"], function(require, exports, module){
var yohobuy;
require("js/common");
require("js/passport/index");
require("js/guang/index");
require("js/home/index");
require("js/product/index");
require("js/index/index");
module.exports = yohobuy;
});
define("js/common", ["zepto"], function(require, exports, module){
/**
* 页面公共逻辑
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/21
*/
var $ = require("zepto");
function cookie(name) {
var cookies = document.cookie,
cookieVal,
offset;
if (document.cookie && document.cookie !== '') {
offset = cookies.indexOf(name + '=');
if (offset > -1) {
offset += name.length + 1;
cookieVal = decodeURIComponent($.trim(cookies.substring(offset, cookies.indexOf(';', offset))));
}
}
return cookieVal;
}
function getUser() {
var c = cookie('_UID'),
user;
if (typeof c === 'undefined') {
return 0;
}
user = c.split('::');
if (typeof user === 'undefined' || user.length < 4) {
return 0;
}
return user;
}
function getUid() {
var user = getUser();
if (user === 0) {
return 0;
}
return user[1];
}
function getShoppingKey() {
var c = cookie('_g');
if (typeof c === 'undefined') {
return '';
}
return JSON.parse(c).k;
}
//页面通用底部位置及status设置
(function() {
var $footer = $('#yoho-footer'),
$op = $footer.children('.op-row');
var user = getUser();
if ($('body').height() < $(window).height()) {
$footer.addClass('bottom');
}
if (user === 0) {
//未登录
$op.prepend(
'<a href="http://m.yohobuy.com/signin.html">登录</a>' +
'<span class="sep-line">|</span>' +
'<a href="http://m.yohobuy.com/reg.html">注册</a>'
);
} else {
//已登录
$op.prepend(
'Hi,' +
'<a class="user-name" href="http://m.yohobuy.com/home?tmp=' + Math.random() + '">' + user[0] + '</a>' +
'<a href="http://m.yohobuy.com/passport/signout/index?token=' + user[3] + '">退出</a>'
);
}
$footer.removeClass('hide');
}());
//暴露公共接口
window.cookie = cookie;
window.getUser = getUser;
window.getUid = getUid;
window.getShoppingKey = getShoppingKey;
});
define("js/passport/index", ["zepto"], function(require, exports, module){
/**
* 注册、登录、密码找回打包入口
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
//注册
require("js/passport/register/register");
require("js/passport/register/code");
require("js/passport/register/password");
//登录
require("js/passport/login/login");
require("js/passport/login/interational");
//密码找回
require("js/passport/back/mobile");
require("js/passport/back/code");
require("js/passport/back/email");
require("js/passport/back/email-success");
require("js/passport/back/new-password");
});
define("js/passport/register/register", ["zepto"], function(require, exports, module){
/**
* 注册
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $phoneNum = $('#phone-num'),
$countrySelect = $('#country-select'),
$areaCode = $('#area-code'),
$btnNext = $('#btn-next');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
api.selectCssHack($('#country-select'));
api.bindClearEvt();
$phoneNum.bind('input', function() {
if (trim($phoneNum.val()) === '') {
$btnNext.addClass('disable');
} else {
$btnNext.removeClass('disable');
}
});
$countrySelect.change(function() {
$areaCode.text($countrySelect.val());
});
$btnNext.on('touchstart', function() {
var pn = trim($phoneNum.val()),
areaCode = $countrySelect.val();
if ($btnNext.hasClass('disable')) {
return;
}
if (api.phoneRegx[areaCode].test(pn)) {
$.ajax({
url: '/passport/reg/verifymobile',
type: 'POST',
data: {
areaCode: areaCode.replace('+', ''),
phoneNum: pn
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
} else {
showErrTip(data.message);
}
}
});
} else {
showErrTip('手机号格式不正确,请重新输入');
}
});
});
define("js/passport/api", ["zepto"], function(require, exports, module){
/**
* 登录注册公用API
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var trim = $.trim;
//邮箱验证规则
var emailRegx = /^([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
//手机号码验证规则
var phoneRegx = {
'+86': /^1[35847]{1}[0-9]{9}$/,
'+852': /^[965]{1}[0-9]{7}$/,
'+853': /^[0-9]{8}$/,
'+886': /^[0-9]{10}$/,
'+65': /^[98]{1}[0-9]{7}$/,
'+60': /^1[1234679]{1}[0-9]{8}$/,
'+1': /^[0-9]{10}$/,
'+82': /^01[0-9]{9}$/,
'+44': /^7[789][0-9]{8}$/,
'+81': /^0[9|8|7][0-9]{9}$/,
'+61': /^[0-9]{11}$/
};
//密码显示隐藏
function bindEyesEvt() {
var $hasEye = $('.has-eye'),
$eye;
$hasEye.append('<div class="eye close"></div>');
$eye = $hasEye.children('.eye');
$eye.on('touchstart', function(e) {
var $this = $(this),
$pwd = $this.siblings('.pwd');
e.preventDefault();
$this.toggleClass('close');
//切换密码显示和文本显示
if ($this.hasClass('close')) {
$pwd.attr('type', 'password');
} else {
$pwd.attr('type', 'text');
}
$pwd.focus();
});
}
// 清空账号显示
function bindClearEvt() {
var $hasClear = $('.has-clear'),
$clear;
$hasClear.append('<div class="clear-input"></div>');
$clear = $hasClear.children('.clear-input');
$clear.on('touchstart', function(e) {
var $input = $clear.siblings('.input');
$input.val('').trigger('input').focus();
e.preventDefault();
});
//反向逻辑
$hasClear.children('.input').bind('input', function() {
var $this = $(this),
$thisClear = $this.siblings('.clear-input'),
val = trim($this.val());
if (val === '') {
$thisClear.hide();
} else {
$thisClear.show();
}
});
}
// 密码长度验证
function pwdValidate(pwd) {
if (pwd.length >= 6 && pwd.length <= 20) {
return true;
}
return false;
}
// hack for resolving direction:rtl didn't work in android uc
function selectCssHack($countrySelect) {
var u = navigator.userAgent;
function autoSelectWidth() {
var wordCount = $countrySelect.find('option:selected').text().length;
switch (wordCount) {
//分别有2,3,4个汉字的情况
case 2:
$countrySelect.outerWidth(90);
break;
case 3:
$countrySelect.outerWidth(110);
break;
default:
$countrySelect.outerWidth(130);
}
}
if (u.match(/uc/i) && u.match(/android/i)) {
$countrySelect.change(function() {
autoSelectWidth();
});
} else {
$countrySelect.removeClass('in-android-uc');
}
}
//Exports APIs
module.exports = {
emailRegx: emailRegx,
phoneRegx: phoneRegx,
bindEyesEvt: bindEyesEvt,
bindClearEvt: bindClearEvt,
pwdValidate: pwdValidate,
selectCssHack: selectCssHack
};
});
define("js/plugin/tip", ["zepto"], function(require, exports, module){
/**
* 弹框提示
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto");
var $tip, tipItime;
/**
* 初始化提示框
*/
(function() {
var tipHtml = '<div id="yoho-tip" class="yoho-tip"></div>';
//插入提示HTML
$('.yoho-page').append(tipHtml);
$tip = $('#yoho-tip');
$tip.on('touchstart', function() {
$tip.hide();
//清除Timeout
clearTimeout(tipItime);
});
}());
/**
* 显示提示
*/
function show(con, dur) {
var content, duration;
if (typeof con === 'undefined') {
return;
}
content = con.toString();
duration = (dur && dur > 0) ? dur : 2000;
$tip.text(content).show();
tipItime = setTimeout(function() {
if ($tip.css('display') === 'block') {
$tip.hide();
}
}, duration);
}
exports.show = show;
});
define("js/passport/register/code", ["zepto"], function(require, exports, module){
/**
* 注册-验证码
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
require("js/passport/code")(true);
});
define("js/passport/code", ["zepto"], function(require, exports, module){
/**
* 注册/找回密码-验证码
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
module.exports = function(useInRegister) {
var $captcha = $('#captcha'),
$btnNext = $('#btn-next'),
$captchaTip = $('#captcha-tip'),
phoneNum = $('#phone-num').val(),
areaCode = $('#area-code').val().replace('+', '');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
var urlMid = useInRegister ? 'reg' : 'back';
function countDown() {
var count = 59,
itime;
itime = setInterval(function() {
if (count === 0) {
$captchaTip.text('重发验证码').removeClass('disable');
clearInterval(itime);
} else {
$captchaTip.text('重发验证码 (' + count-- + '秒)');
}
}, 1000);
}
api.bindClearEvt();
$captcha.bind('input', function() {
if (trim($captcha.val()) !== '') {
$btnNext.removeClass('disable');
} else {
$btnNext.addClass('disable');
}
});
//重新发送验证码
$captchaTip.on('touchstart', function() {
if ($captchaTip.hasClass('disable')) {
return;
}
$.ajax({
type: 'POST',
url: '/passport/' + urlMid + '/sendcode',
data: {
phoneNum: phoneNum,
areaCode: areaCode
},
success: function(data) {
if (data.code === 200) {
$captchaTip.text('重发验证码 (60秒)').addClass('disable');
countDown();
} else {
//验证码不正确,显示提示
showErrTip(data.message);
}
}
});
});
$btnNext.on('touchstart', function() {
if ($btnNext.hasClass('disable')) {
return;
}
$.ajax({
type: 'POST',
url: '/passport/' + urlMid + '/verifycode',
data: {
phoneNum: phoneNum,
areaCode: areaCode,
code: trim($captcha.val()),
token: $('#token').val()
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
} else {
//验证码不正确,显示提示
showErrTip(data.message);
}
}
});
});
countDown();
};
});
define("js/passport/register/password", ["zepto"], function(require, exports, module){
/**
* 注册-密码
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $pwd = $('#pwd'),
$btnSure = $('#btn-sure');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
api.bindEyesEvt();
$pwd.bind('input', function() {
if (trim($pwd.val()) === '') {
$btnSure.addClass('disable');
} else {
$btnSure.removeClass('disable');
}
});
$btnSure.on('touchstart', function() {
var pwd = trim($pwd.val());
if ($btnSure.hasClass('disable')) {
return;
}
if (api.pwdValidate(pwd) === false) {
showErrTip('密码6-20位,请重新输入');
} else {
$.ajax({
type: 'POST',
url: '/passport/reg/setpassword',
data: {
password: pwd,
phoneNum: $('#phone-num').val(),
areaCode: $('#area-code').val(),
token: $('#token').val()
},
success: function(data) {
if (data.code === 200) {
showErrTip('注册成功');
//1000ms后跳转页面
setTimeout(function() {
location.href = data.data;
}, 1000);
} else {
if (data.code === 401 || data.code === 404 || data.code === 505) {
showErrTip(data.message);
} else {
showErrTip(data.message);
setTimeout(function() {
location.href = data.data;
}, 1000);
}
}
}
});
}
});
});
define("js/passport/login/login", ["zepto"], function(require, exports, module){
/**
* 登录
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/9/30
*/
var $ = require("zepto");
var $account = $('#account'),
$pwd = $('#pwd'),
$loginBtn = $('#btn-login'),
$mask = $('#retrive-pwd-mask'),
$ways = $('#retrive-pwd-ways'),
accPass = false,
pwdPass = false;
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
//登录按钮状态切换
function switchLoginBtnStatus() {
if (accPass && pwdPass) {
$loginBtn.removeClass('disable');
} else {
$loginBtn.addClass('disable');
}
}
//显示找回密码面板
function showRetrivePanel() {
$mask.show();
$ways.show();
}
//隐藏找回密码面板
function hideRetrivePanel() {
$mask.hide();
$ways.hide();
}
//密码显示与隐藏
api.bindEyesEvt();
//清空账号输入框
api.bindClearEvt();
$account.bind('input', function() {
if (trim($account.val()) !== '') {
accPass = true;
} else {
accPass = false;
}
switchLoginBtnStatus();
});
$pwd.bind('input', function() {
if (trim($pwd.val()) === '') {
pwdPass = false;
} else {
pwdPass = true;
}
switchLoginBtnStatus();
});
// Login
$loginBtn.on('touchstart', function() {
var acc = trim($account.val()),
pwd = trim($pwd.val());
if ($loginBtn.hasClass('disable')) {
return;
}
//验证账号(数字或者邮箱)和密码合理性
if ((/^[0-9]+$/.test(acc) || api.emailRegx.test(acc)) && api.pwdValidate(pwd)) {
$.ajax({
type: 'POST',
url: '/passport/login/auth',
data: {
account: acc,
password: pwd
},
success: function(data) {
if (data.code === 200) {
showErrTip('登录成功');
//1s后跳转页面
setTimeout(function() {
location.href = data.data;
}, 1000);
} else {
showErrTip(data.message);
}
},
error: function() {
showErrTip('网络断开连接啦~');
}
});
} else {
showErrTip('账号或密码有错误,请重新输入');
}
});
$('#forget-pwd').on('touchstart', function() {
showRetrivePanel();
});
$mask.on('touchstart', function() {
hideRetrivePanel();
});
$('#cancel-retrive').on('touchstart', function(e) {
e.preventDefault();
hideRetrivePanel();
});
//对初始有默认值的情况去初始化登录按钮状态
$account.trigger('input');
$pwd.trigger('input');
});
define("js/passport/login/interational", ["zepto"], function(require, exports, module){
/**
* 国际账号登录
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $phoneNum = $('#phone-num'),
$countrySelect = $('#country-select'),
$areaCode = $('#area-code'),
$pwd = $('#pwd'),
$loginBtn = $('#btn-login'),
pnPass = false,
pwdPass = false;
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
//登录按钮状态切换
function switchLoginBtnStatus() {
if (pnPass && pwdPass) {
$loginBtn.removeClass('disable');
} else {
$loginBtn.addClass('disable');
}
}
//Android-UC下显示select的direction:rtl无效的临时解决办法
api.selectCssHack($countrySelect);
//显示隐藏密码
api.bindEyesEvt();
//清空手机号码
api.bindClearEvt();
$phoneNum.bind('input', function() {
if (trim($phoneNum.val()) === '') {
pnPass = false;
} else {
pnPass = true;
}
switchLoginBtnStatus();
});
$pwd.bind('input', function() {
var pwd = trim($pwd.val());
if (pwd === '') {
pwdPass = false;
} else {
pwdPass = true;
}
switchLoginBtnStatus();
});
$countrySelect.change(function() {
$areaCode.text($countrySelect.val());
});
$loginBtn.on('touchstart', function() {
var pn = trim($phoneNum.val()),
areaCode = $countrySelect.val(),
pwd = trim($pwd.val());
if ($loginBtn.hasClass('disable')) {
return;
}
if (api.phoneRegx[areaCode].test(pn) && api.pwdValidate(pwd)) {
$.ajax({
type: 'POST',
url: '/passport/login/auth',
data: {
areaCode: areaCode.replace('+', ''),
account: pn,
password: pwd
},
success: function(data) {
if (data.code === 200) {
showErrTip('登录成功');
//1000ms后跳转页面
setTimeout(function() {
location.href = data.data;
}, 1000);
} else {
showErrTip(data.message);
}
},
error: function() {
showErrTip('网络断开连接啦~');
}
});
} else {
showErrTip('账号或密码有错误,请重新输入');
}
});
//对初始有默认值的情况去初始化登录按钮状态
$phoneNum.trigger('input');
$pwd.trigger('input');
});
define("js/passport/back/mobile", ["zepto"], function(require, exports, module){
/**
* 找回密码-手机
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $phoneNum = $('#phone-num'),
$countrySelect = $('#country-select'),
$areaCode = $('#area-code'),
$btnNext = $('#btn-next');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
api.selectCssHack($('#country-select'));
api.bindClearEvt();
$phoneNum.bind('input', function() {
if (trim($phoneNum.val()) === '') {
$btnNext.addClass('disable');
} else {
$btnNext.removeClass('disable');
}
});
$countrySelect.change(function() {
$areaCode.text($countrySelect.val());
});
$btnNext.on('touchstart', function() {
var pn = trim($phoneNum.val()),
area = $countrySelect.val();
if ($btnNext.hasClass('disable')) {
return;
}
if (api.phoneRegx[area].test(pn)) {
$.ajax({
url: '/passport/back/sendcode',
type: 'POST',
data: {
areaCode: area.replace('+', ''),
phoneNum: pn
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
} else {
showErrTip(data.message);
}
}
});
} else {
showErrTip('手机号格式不正确,请重新输入');
}
});
});
define("js/passport/back/code", ["zepto"], function(require, exports, module){
/**
* 找回密码-验证码
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
require("js/passport/code")(false);
});
define("js/passport/back/email", ["zepto"], function(require, exports, module){
/**
* 找回密码-邮箱找回
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $email = $('#email'),
$btnSure = $('#btn-sure');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
api.bindClearEvt();
$email.bind('input', function() {
if (trim($email.val()) === '') {
$btnSure.addClass('disable');
} else {
$btnSure.removeClass('disable');
}
});
$btnSure.on('touchstart', function() {
var email = trim($email.val());
if ($btnSure.hasClass('disable')) {
return;
}
if (api.emailRegx.test(email)) {
$.ajax({
url: '/passport/back/sendemail',
type: 'POST',
data: {
email: email
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
} else {
showErrTip(data.message);
}
}
});
} else {
showErrTip('邮箱格式不正确,请重新输入');
}
});
});
define("js/passport/back/email-success", ["zepto"], function(require, exports, module){
/**
* 找回密码-邮箱找回成功
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $resend = $('#resend');
var tip = require("js/plugin/tip"),
showErrTip = tip.show;
$resend.on('touchstart', function(e) {
e.preventDefault();
$.ajax({
url: $resend.data('url'),
type: 'GET',
success: function(data) {
if (data.code === 200) {
showErrTip(data.message);
} else {
showErrTip(data.message);
}
}
});
});
});
define("js/passport/back/new-password", ["zepto"], function(require, exports, module){
/**
* 密码找回-新密码
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/8
*/
var $ = require("zepto");
var $pwd = $('#pwd'),
$btnOk = $('#btn-ok');
var api = require("js/passport/api");
var tip = require("js/plugin/tip");
var trim = $.trim;
var showErrTip = tip.show;
var $phoneNum = $('#phone-num');
api.bindEyesEvt();
$pwd.bind('input', function() {
if (trim($pwd.val()) === '') {
$btnOk.addClass('disable');
} else {
$btnOk.removeClass('disable');
}
});
$btnOk.on('touchstart', function() {
var pwd = trim($pwd.val()),
mobileBack = true,
setting,
url;
if ($btnOk.hasClass('disable')) {
return;
}
setting = {
password: pwd
};
if ($phoneNum.length === 0) {
mobileBack = false;
}
if (mobileBack) {
$.extend(setting, {
phoneNum: $phoneNum.val(),
areaCode: $('#areaCode').val(),
token: $('#token').val()
});
url = '/passport/back/passwordByMobile';
} else {
$.extend(setting, {
code: $('#email-code').val()
});
url = '/passport/back/passwordByEmail';
}
if (api.pwdValidate(pwd)) {
$.ajax({
type: 'POST',
url: url,
data: setting,
success: function(data) {
if (data.code === 200) {
showErrTip('密码修改成功');
//1000ms后跳转页面
setTimeout(function() {
location.href = data.data;
}, 1000);
} else {
showErrTip(data.message);
}
}
});
} else {
showErrTip('密码6-20位,请重新输入');
}
});
});
define("js/guang/index", ["zepto","lazyload","swiper","mlellipsis","index"], function(require, exports, module){
/**
* 逛打包入口
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/9
*/
require("js/guang/plus-star/list");
require("js/guang/plus-star/detail");
require("js/guang/home");
require("js/guang/list");
});
define("js/guang/plus-star/list", ["zepto","lazyload","swiper","index"], function(require, exports, module){
/**
* PLUS+STAR列表页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto"),
lazyLoad = require("lazyload"),
Swiper = require("swiper");
var $navs = $('#nav-tab > li'),
$contents = $('#ps-content > .content');
var mySwiper;
lazyLoad($('img.lazy'));
mySwiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
$('#nav-tab').delegate('li', 'touchstart', function() {
if ($(this).hasClass('focus')) {
return;
}
$navs.toggleClass('focus');
$contents.toggleClass('hide');
$(document).trigger('scroll'); //Trigger lazyLoad
});
});
define("js/guang/plus-star/detail", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
* PLUS+STAR详情页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto"),
ellipsis = require("mlellipsis"),
lazyLoad = require("lazyload");
var $intro = $('#intro'),
$imt = $('#intro-more-txt'),
$infosContainer = $('#related-infos-container');
var info = require("js/guang/info");
var tip = require("js/plugin/tip");
var brandId = $('#brand-info').data('id');
var mIntro, aIntro;
ellipsis.init();
//Init LazyLoad
lazyLoad($('img.lazy'));
//文字介绍文字截取
$intro[0].mlellipsis(3);
//获取截取文字和完整文字
setTimeout(function() {
mIntro = $intro.text();
aIntro = $intro.attr('title');
});
info.initInfosEvt($infosContainer);
//文字介绍收起与展开
$('#more-intro').bind('touchstart', function() {
var $this = $(this);
$this.toggleClass('spread');
if ($this.hasClass('spread')) {
//显示
$intro.text(aIntro);
$imt.text('收起');
} else {
//隐藏
$intro.text(mIntro);
$imt.text('more');
}
});
//品牌收藏
$('#brand-like').bind('touchstart', function(e) {
var opt = 'ok',
$this = $(this);
e.preventDefault();
if ($this.hasClass('like')) {
opt = 'cancel';
}
$.ajax({
type: 'POST',
url: '/guang/opt/favoriteBrand',
data: {
id: brandId,
opt: opt
},
success: function(data) {
if (data.code === 200) {
$this.toggleClass('like');
} else if (data.code === 400) {
tip.show('未登录');
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
});
});
define("js/guang/info", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
* 资讯相关API
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto"),
ellipsis = require("mlellipsis"),
lazyLoad = require("lazyload");
var tip = require("js/plugin/tip");
var $loadMoreInfo = $('#load-more-info');
var $loading = $(''),
$noMore = $('');
var loading = false;
ellipsis.init();
if ($loadMoreInfo.length > 0) {
$loading = $loadMoreInfo.children('.loading');
$noMore = $loadMoreInfo.children('.no-more');
}
/**
* 设置指定资讯项的Lazyload和文字截取
* @params $infos 资讯项
*/
function setLazyLoadAndMellipsis($infos) {
lazyLoad($infos.find('img.lazy'));
$infos.each(function() {
var $this = $(this),
$title = $this.find('.info-title'),
$text = $this.find('.info-text');
//减少重复调用
if ($title.attr('title') && $text.attr('title')) {
return;
}
$title[0].mlellipsis(2);
$text[0].mlellipsis(2);
});
}
/**
* 初始化资讯列表事件绑定
* @params $container 逛资讯列表容器
*/
function initInfosEvt($container) {
$container.delegate('.like-btn', 'touchstart', function(e) {
var $likeBtn = $(e.currentTarget),
$info = $likeBtn.closest('.guang-info'),
opt = 'ok';
if ($likeBtn.hasClass('like')) {
opt = 'cancel';
}
$.ajax({
type: 'POST',
url: '/guang/opt/praiseArticle',
data: {
id: $info.data('id'),
opt: opt
},
success: function(data) {
var code = data.code;
if (code === 200) {
$likeBtn.next('.like-count').text(data.data);
//切换点赞状态
$likeBtn.toggleClass('like');
}
},
error: function() {
tip.show('网络断开连接了~');
}
});
});
setLazyLoadAndMellipsis($container.find('.guang-info'));
}
/**
* 资讯LoadMore
*/
function loadMore($container, opt) {
if (loading) {
return;
}
if (opt.end) {
return;
}
loading = true;
$.ajax({
type: 'GET',
url: ' /guang/list/page',
data: opt,
success: function(data) {
if (data === ' ') {
opt.end = true;
loading = false;
//
$loading.addClass('hide');
$noMore.removeClass('hide');
return;
}
$container.append(data);
setLazyLoadAndMellipsis($container.find('.guang-info'));
opt.page++;
loading = false;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
}
});
}
exports.initInfosEvt = initInfosEvt;
exports.setLazyLoadAndMellipsis = setLazyLoadAndMellipsis;
exports.loadMore = loadMore;
});
define("js/guang/home", ["zepto","swiper","mlellipsis","lazyload","index"], function(require, exports, module){
/**
* 逛首页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto"),
Swiper = require("swiper");
var info = require("js/guang/info"),
setLazyLoadAndMellipsis = info.setLazyLoadAndMellipsis,
loadMore = info.loadMore;
var $loadMoreInfo = $('#load-more-info');
var $loading = $(''),
$noMore = $('');
var winH = $(window).height(),
loadMoreH = $loadMoreInfo.height();
var $infoList = $('#info-list'),
$infos = $infoList.children('.info-list'),
$nav = $('#guang-nav'),
$curNav = $nav.children('.focus'),
curType = $curNav.data('type');
var state = {};
var mySwiper;
if ($loadMoreInfo.length > 0) {
$loading = $loadMoreInfo.children('.loading');
$noMore = $loadMoreInfo.children('.no-more');
}
mySwiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
info.initInfosEvt($infoList);
//初始化各Nav下资讯加载的状态
(function() {
var gender = $('#gender').val();
$nav.children('.guang-nav-item').each(function() {
var type = $(this).data('type');
state[type] = {
page: 1,
gender: gender,
type: type,
end: false
};
});
}());
$nav.delegate('.guang-nav-item', 'touchstart', function() {
var $this = $(this),
$content,
index;
if ($this.hasClass('focus')) {
return;
}
index = $this.index();
$this.addClass('focus');
$curNav.removeClass('focus');
$infos.not('.hide').addClass('hide');
$content = $infos.eq(index);
$content.removeClass('hide');
//lazyload & mellipsis
setLazyLoadAndMellipsis($content.children('.guang-info'));
$curNav = $this;
curType = $this.data('type');
//重置当前Tab的load-more
if (state[curType].end) {
$loading.addClass('hide');
$noMore.removeClass('hide');
} else {
$loading.removeClass('hide');
$noMore.addClass('hide');
}
});
$(document).scroll(function() {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
loadMore($infos, state[curType]);
}
});
});
define("js/guang/list", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
* 列表页,编辑页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/10
*/
var $ = require("zepto");
var info = require("js/guang/info"),
loadMore = info.loadMore;
var winH = $(window).height(),
loadMoreH = $('#load-more').height();
var $author = $('#author-infos');
var $tag = $('#tag');
var setting = {
page: 1,
end: false
};
var $infos = $('#info-list');
info.initInfosEvt($infos);
if ($author.length > 0) {
$.extend(setting, {
authorId: $author.data('id')
});
}
if ($tag.length > 0) {
$.extend(setting, {
tag: $tag.val()
});
}
$(document).scroll(function() {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
loadMore($infos, setting);
}
});
});
define("js/home/index", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
* 首页打包入口
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/12
*/
require("js/home/home");
require("js/home/maybe-like");
});
define("js/home/home", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
* 首页
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/12
*/
var $ = require("zepto"),
Swiper = require("swiper"),
lazyLoad = require("lazyload"),
bannerSwiper,
recommendSwiper,
trendTopicSwiper,
goodsSwiper;
var requestFrame,
thisFunc,
start = 0,
i,
swiperClass,
supportCss3,
$logotrans = $('.home-header .logo'),
isen = true;
require("js/home/maybe-like");
lazyLoad($('img.lazy'));
//$('img:in-viewport').trigger('appear');
//点击首页汉堡menu图标,滑出侧栏导航
$('.nav-btn').on('click', function (event) {
if (!$(this).hasClass('menu-open')) {
$('.mobile-wrap').addClass('menu-open');
$('.overlay').addClass('show');
$('.side-nav').addClass('on');
//设置boy高宽,页面不能上下滑动
$('body').css({
height: $(window).height(),
width: '100%',
overflow: 'hidden'
});
}
event.stopPropagation();
});
//点击页面主体,收起侧栏导航及二级导航
$('.mobile-wrap').on('click', function () {
if ($(this).hasClass('menu-open')) {
$('.mobile-wrap').removeClass('menu-open');
$('.overlay').removeClass('show');
$('.sub-nav').removeClass('show');
$('.side-nav').removeClass('on');
$('body').css({
height: 'auto',
overflow: 'auto'
});
}
});
//点击一级导航,弹出二级导航
$('.side-nav').on('click', 'li', function () {
if ($(this).find('.sub-nav').size() > 0) {
$('.sub-nav').removeClass('show');
$(this).find('.sub-nav').addClass('show');
}
});
//返回一级导航,收起二级导航
$('.sub-nav').each(function () {
$(this).find('li').eq(0).on('click', function (e) {
$('.sub-nav').removeClass('show');
e.stopPropagation();
});
});
//二级导航样式控制
$('.sub-nav').on('mouseenter', 'li', function () {
if ($(this).index() !== 0) {
$(this).addClass('current').siblings().removeClass('current');
}
});
//头部banner轮播
if ($('.banner-swiper').find('li').size() > 1) {
bannerSwiper = new Swiper('.banner-swiper', {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.banner-top .pagination-inner'
});
}
//热门品牌滑动
// hotBrandsSwiper = new Swiper('.brands-swiper', {
// grabCursor: true,
// slidesPerView: 'auto',
// wrapperClass: 'brands-list',
// slideElement: 'li'
// });
//推荐搭配滑动
recommendSwiper = new Swiper('.recommend-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'recommend-list',
slideElement: 'li'
});
//潮品话题轮播
if ($('.trend-topic-swiper').find('li').size() > 1) {
trendTopicSwiper = new Swiper('.trend-topic-swiper', {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.trend-topic-content .pagination-inner'
});
}
//潮流上装/经典裤装等轮播
$('.category-swiper').each(function (i, index) {
swiperClass = 'category-swiper' + i;
$(this).addClass(swiperClass);
if ($('.' + swiperClass).find('.swiper-slide').size() > 1) {
goodsSwiper = new Swiper('.' + swiperClass, {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.' + swiperClass + ' .pagination-inner'
});
}
});
//回到顶部
// $('.back-to-top').bind('touchstart', function (e) {
// e.preventDefault();
// $(window).scrollTop(0);
// });
//关闭头部下载浮层
$('.header-download').on('click', '.close-btn', function () {
$(this).parent().remove();
});
//logo动画
requestFrame = (function () {
var tempFunc = null,
prefixList = ['webkit', 'moz', 'ms'];
for (i = 0; i < prefixList.length; i++) {
thisFunc = prefixList[i] + 'RequestAnimationFrame';
if (window[thisFunc]) {
supportCss3 = true;
tempFunc = thisFunc;
}
}
if (supportCss3) {
return function (callback) {
window[tempFunc](callback);
};
}
return function (callback) {
window.setTimeout(callback, 67);
};
})();
function tsAnimate() {
start = start + 10;
$logotrans.css({
transform: 'rotateX(' + start + 'deg)',
'-webkit-transform': 'rotateX(' + start + 'deg)',
'-moz-transform': 'rotateX(' + start + 'deg)'
});
if (start / 90 % 2 === 1) {
if (isen) {
$logotrans.addClass('animate');
isen = false;
} else {
$logotrans.removeClass('animate');
isen = true;
}
}
if (start / 90 % 2 === 0 && start % 360 !== 0) {
window.setTimeout(tsAnimate, 3000);
} else {
if (start % 360 === 0) {
window.setTimeout(tsAnimate, 3 * 60 * 1000);
} else {
requestFrame(function () {
tsAnimate();
});
}
}
}
tsAnimate();
});
define("js/home/maybe-like", ["zepto","lazyload"], function(require, exports, module){
/**
* “你可能喜欢”模块JS
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/12
*/
var $ = require("zepto"),
tip = require("js/plugin/tip"),
lazyLoad = require("lazyload");
var winH = $(window).height(),
loadMoreH = $('#load-more').height(),
$goodList = $('#goods-list'),
loading = false,
page = 0,
gender = $('.mobile-wrap').hasClass('boys-wrap') ? '1,3' : '2,3',
kidsType = $('.mobile-wrap').hasClass('kids-wrap') ? true : false,
lifestyleType = $('.mobile-wrap').hasClass('lifestyle-wrap') ? true : false,
num,
url;
var $curNav,
index,
$navList = $('#maybe-like-nav');
//ajax url
if (kidsType) {
url = '/product/recom/maylikekids';
} else if (lifestyleType) {
url = '/product/recom/maylikelife';
} else {
url = '/product/recom/maylike?gender=' + gender;
}
$curNav = $navList.children('.focus');
$('#maybe-like-nav').delegate('li', 'touchstart', function() {
var $this = $(this),
$goods = $('.goods-list'),
$content;
if ($this.hasClass('focus')) {
return;
}
index = $this.index();
$this.addClass('focus');
$curNav.removeClass('focus');
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
$curNav = $this;
$(document).trigger('scroll'); //Trigger lazyLoad
});
//srcoll to load more
$(window).scroll(function () {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
if (loading) {
return;
}
loading = true;
num = $goodList.children('.good-info').length;
$.ajax({
type: 'GET',
url: url,
data: {
page: page + 1
},
success: function(data) {
if (data === ' ') {
loading = true;
return;
}
$goodList.append(data);
//lazyLoad
//lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
lazyLoad($('.good-info').find('img.lazy'));
loading = false;
page++;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
}
});
}
});
});
define("js/product/index", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
* 产品打包入口
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/12
*/
require("js/product/newsale/newarrival");
require("js/product/newsale/discount");
require("js/product/list");
require("js/product/detail/detail");
});
define("js/product/newsale/newarrival", ["zepto","swiper","lazyload","index"], function(require, exports, module){
var $ = require("zepto"),
tip = require("js/plugin/tip"),
Swiper = require("swiper"),
lazyLoad = require("lazyload");
var $curNav,
$navList = $('#newarrival-nav'),
$newArrivalList = $('#newarrival-goods-list'),
$goods = $newArrivalList.children('.goods-list');
var winH = $(window).height(),
loadMoreH = $('#load-more').height(),
$goodList = $('.goods-list'),
loading = false,
page = 0,
index = 0,
num;
var swiper;
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
lazyLoad($('img.lazy'));
$curNav = $navList.children('.focus');
$('#newarrival-nav').delegate('li', 'touchstart', function() {
var $this = $(this),
$content;
if ($this.hasClass('focus')) {
return;
}
index = $this.index();
$this.addClass('focus');
$curNav.removeClass('focus');
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
$curNav = $this;
$(document).trigger('scroll'); //Trigger lazyLoad
});
//srcoll to load more
$(window).scroll(function () {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
if (loading) {
return;
}
loading = true;
num = $goodList.children('.good-info').length;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: {
dayLimit: index + 1,
page: page + 1
},
success: function(data) {
if (data === ' ') {
//opt.end = true;
loading = false;
return;
}
$goodList.append(data);
//lazyLoad
//lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
lazyLoad($('.good-info').find('img.lazy'));
loading = false;
page++;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
}
});
}
});
});
define("js/product/newsale/discount", ["zepto","swiper","lazyload","index"], function(require, exports, module){
var $ = require("zepto"),
Swiper = require("swiper"),
lazyLoad = require("lazyload");
var $curNav,
$navList = $('#discount-nav'),
$newArrivalList = $('#discount-goods-list'),
$goods = $newArrivalList.children('.goods-list'),
$goodList = $('.goods-list');
var swiper;
var index = 0,
winH = $(window).height(),
loadMoreH = $('#load-more').height(),
loading = false,
page = 0,
pd = "";
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
lazyLoad($('img.lazy'));
$curNav = $navList.children('.focus');
$('#discount-nav').delegate('li', 'touchstart', function() {
var $this = $(this),
$content;
if ($this.hasClass('focus')) {
return;
}
index = $this.index();
pd = getSalePdByChoose(index);
$this.addClass('focus');
$curNav.removeClass('focus');
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
$curNav = $this;
$(document).trigger('scroll'); //Trigger lazyLoad
});
//srcoll to load more
$(window).scroll(function () {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
if (loading) {
return;
}
loading = true;
num = $goodList.children('.good-info').length;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: {
p_d: pd,
page: page + 1
},
success: function(data) {
if (data === ' ') {
//opt.end = true;
loading = false;
return;
}
$goodList.append(data);
//lazyLoad
//lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
lazyLoad($('.good-info').find('img.lazy'));
loading = false;
page++;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
}
});
}
});
/**
* 根据用户的选择获取商品折扣值
*
* @param int index
* @return string
*/
function getSalePdByChoose(index) {
var pd = "0.1,0.3";
switch (index) {
case 0:
pd = "0.1,0.3";
break;
case 1:
pd = "0.4,0.6";
break;
case 2:
pd = "0.7,0.9";
break;
case 3:
pd = "0.1,0.9";
break;
}
return pd;
}
});
define("js/product/list", ["zepto","lazyload"], function(require, exports, module){
/**
* 商品列表页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/20
*/
var $ = require("zepto"),
lazyLoad = require("lazyload");
//品牌页参数
var $brandHeader = $('#brand-header'),
$introBox = $('#intro-box');
var filter = require("js/plugin/filter");
var $goodsContainer = $('#goods-container'),
$ngc = $goodsContainer.children('.new-goods'),
$pgc = $goodsContainer.children('.price-goods'),
$dgc = $goodsContainer.children('.discount-goods');
var winH = $(window).height();
//默认筛选条件
var defaultOpt = {
gender: $('#gender').val(),
brand: $('#brand').val(),
msort: $('#msort').val(),
color: $('#color').val(),
size: $('#size').val(),
price: $('#price').val(),
discount: $('#discount').val()
};
var $listNav = $('#list-nav'),
//导航数据信息
navInfo = {
newest: {
order: 1,
reload: true,
page: 0,
end: false
},
price: {
order: 0,
reload: true,
page: 0,
end: false
},
discount: {
order: 0,
reload: true,
page: 0,
end: false
}
},
$pre, //纪录进入筛选前的active项
searching;
/**
* 筛选注册的回调,筛选子项点击后逻辑
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
* @param opt {type, id}
*/
function search(opt) {
var setting = {},
ext,
att,
nav, navType,
page;
if (opt) {
//筛选项变更则重置reload为true
for (att in navInfo) {
if (navInfo.hasOwnProperty(att)) {
navInfo[att].reload = true;
}
}
switch (opt.type) {
case 'gender':
ext = {
gender: opt.id
};
break;
case 'brand':
ext = {
brand: opt.id
};
break;
case 'msort':
ext = {
msort: opt.id
};
break;
case 'color':
ext = {
color: opt.id
};
break;
case 'size':
ext = {
size: opt.id
};
break;
case 'price':
ext = {
price: opt.id
};
break;
case 'discount':
ext = {
discount: opt.id
};
break;
}
$.extend(defaultOpt, ext); //扩展筛选项
}
if (searching) {
return;
}
//导航类别
if ($pre.hasClass('new')) {
navType = 'newest';
} else if ($pre.hasClass('price')) {
navType = 'price';
} else if ($pre.hasClass('discount')) {
navType = 'discount';
}
nav = navInfo[navType];
page = nav.page + 1;
if (nav.reload) {
page = 1;
} else if (nav.end) {
//不需要重新加载并且数据请求结束
return;
}
$.extend(setting, defaultOpt, {
type: navType,
order: nav.order,
page: page
});
searching = true;
$.ajax({
type: 'GET',
url: '/product/list/search',
data: setting,
success: function(data) {
var noResult = '<p class="no-result">未找到相关搜索结果</p>',
$container;
switch (navType) {
case 'newest':
$container = $ngc;
break;
case 'price':
$container = $pgc;
break;
case 'discount':
$container = $dgc;
break;
}
if (data.data === ' ') {
nav.end = true;
if (nav.reload) {
$container.html(noResult);
}
} else {
if (nav.reload) {
$container.html(data.data);
} else {
$container.append(data.data);
}
lazyLoad($container.find('.lazy'));
}
nav.reload = true;
nav.page = page;
searching = false;
}
});
}
lazyLoad($('.lazy'));
filter.registerCbFn(search);
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'touchstart', function() {
var $this = $(this),
navType,
$active;
if ($this.hasClass('filter')) {
//筛选面板切换状态
if ($this.hasClass('active')) {
filter.hideFilter();
//点击筛选钱的active项回复active
$pre.addClass('active');
$this.removeClass('active');
} else {
$pre = $this.siblings('.active');
$pre.removeClass('active');
$this.addClass('active');
filter.showFilter();
}
} else {
if ($this.hasClass('active')) {
//最新无排序切换
if ($this.hasClass('new')) {
return;
}
if ($this.hasClass('price') || $this.hasClass('discount')) {
// 价格/折扣切换排序状态
$this.find('.icon > .iconfont').toggleClass('cur');
}
} else {
$active = $this.siblings('.active');
if ($active.hasClass('filter')) {
$pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项
//若之前active项为筛选,则隐藏筛选面板
filter.hideFilter();
} else {
$pre = $active;
}
$active.removeClass('active');
$this.addClass('active');
$pre = $active;
}
if ($this.hasClass('new')) {
navType = 'newest';
} else if ($this.hasClass('price')) {
navType = 'price';
} else if ($this.hasClass('discount')) {
navType = 'discount';
}
if (navInfo[navType].reload) {
search();
}
}
});
$(window).scroll(function() {
//当scroll到1/4$goodsContainer高度后继续请求下一页数据
if ($(window).scrollTop() + winH >
$(document).height() - 0.25 * $goodsContainer.height()) {
search();
}
});
//品牌介绍
$brandHeader.children('.btn-intro').bind('touchstart', function() {
$introBox.removeClass('hide');
});
$('.close-intro, .brand-intro-box').click(function() {
$introBox.addClass('hide');
});
$('#brand-intro').click(function(e) {
e.stopPropagation();
});
//品牌收藏
$brandHeader.children('.btn-col').bind('touchstart', function() {
$(this).toggleClass('coled');
});
});
define("js/plugin/filter", ["zepto"], function(require, exports, module){
/**
* 筛选JS
* 暴露三个接口:注册回调、显示filter、隐藏filter
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/19
*/
var $ = require("zepto");
var $filter = $('.filter-mask, .filter-body');
var $classify = $filter.find('.classify'),
$subClassify = $filter.find('.sub-classify');
var cbFn;
//隐藏筛选界面
function hideFilter() {
$filter.addClass('hide');
}
//显示筛选界面
function showFilter() {
$filter.removeClass('hide');
}
//注册sub-classify点击后的回调
function registerCbFn(cb) {
cbFn = cb;
}
//设置完高度后显示sub并设置选中
$classify.children(':first-child').addClass('active'); //T:不在HTML中使用{{#if @first}}active{{/if}}来初始化active为避免sub设置高度时的闪烁
//classify switch
$classify.delegate('.classify-item', 'touchstart', function() {
var $this = $(this);
if ($this.hasClass('active')) {
return;
}
$this.siblings('.active').removeClass('active');
$this.addClass('active');
});
//点击Mask隐藏筛选界面
$filter.filter('.filter-mask').click(function() {
hideFilter();
});
$subClassify.delegate('li', 'click', function(e) {
var $this = $(this),
id = $this.data('id');
var $sub = $this.closest('.sub-classify');
var $shower = $sub.siblings('.shower');
var html, shower;
e.stopPropagation();
if ($this.hasClass('chosed')) {
return;
}
$sub.children('.chosed').removeClass('chosed');
$this.addClass('chosed');
html = $.trim($this.html());
shower = $.trim($shower.html());
$shower.html(
shower.substring(0, shower.indexOf('</span>') + 7) + //拆分出shower的title
html.substring(0, html.indexOf('<i')) //拆分选中筛选值
);
if ($this.index() === 0) {
$shower.addClass('default');
} else {
$shower.removeClass('default');
}
if (cbFn) {
cbFn({
type: $sub.data('type'),
id: id
});
}
hideFilter();
});
exports.showFilter = showFilter;
exports.hideFilter = hideFilter;
exports.registerCbFn = registerCbFn;
});
define("js/product/detail/detail", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
* 产品打包入口
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/20
*/
var $ = require("zepto"),
Swiper = require("swiper"),
lazyLoad = require("lazyload"),
goodsSwiper;
lazyLoad($('img.lazy'));
goodsSwiper = new Swiper('.banner-swiper', {
loop: true,
pagination: '.banner-top .pagination-inner',
slideElement: 'li',
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev'
});
});
define("js/index/index", ["zepto"], function(require, exports, module){
/**
* Index打包入口
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/19
*/
require("js/index/search");
require("js/index/channel");
});
define("js/index/search", ["zepto"], function(require, exports, module){
/**
* 搜索JS
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/19
*/
var $ = require("zepto");
var $input = $('#search-input > input');
var $clear = $('#search-input > .clear-input');
var $history = $('.history');
$('#clear-history').bind('touchstart', function() {
$.ajax({
type: 'POST',
url: '/search/clearHistory',
success: function(data) {
if (data.code === 200) {
$history.html(''); //clear search history items
}
}
});
});
$('#search').bind('touchstart', function() {
var val = $input.val();
$.ajax({
type: 'POST',
url: '/search',
data: {
val: val
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
}
}
});
});
$input.bind('input', function() {
if ($input.val() === '') {
$clear.addClass('hide');
} else {
$clear.removeClass('hide');
}
});
$clear.bind('touchstart', function() {
$input.val('').trigger('input');
});
});
define("js/index/channel", [], function(require, exports, module){
/**
* 频道选择
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/12
*/
});
... ...
This diff could not be displayed because it is too large.
define("index",["zepto","lazyload","swiper","mlellipsis","index"],function(e,a,t){var s;e("js/common"),e("js/passport/index"),e("js/guang/index"),e("js/home/index"),e("js/product/index"),e("js/index/index"),t.exports=s}),define("js/common",["zepto"],function(e,a,t){function s(e){var a,t,s=document.cookie;return document.cookie&&""!==document.cookie&&(t=s.indexOf(e+"="),t>-1&&(t+=e.length+1,a=decodeURIComponent(r.trim(s.substring(t,s.indexOf(";",t)))))),a}function n(){var e,a=s("_UID");return"undefined"==typeof a?0:(e=a.split("::"),"undefined"==typeof e||e.length<4?0:e)}function i(){var e=n();return 0===e?0:e[1]}function o(){var e=s("_g");return"undefined"==typeof e?"":JSON.parse(e).k}var r=e("zepto");!function(){var e=r("#yoho-footer"),a=e.children(".op-row"),t=n();r("body").height()<r(window).height()&&e.addClass("bottom"),0===t?a.prepend('<a href="http://m.yohobuy.com/signin.html">登录</a><span class="sep-line">|</span><a href="http://m.yohobuy.com/reg.html">注册</a>'):a.prepend('Hi,<a class="user-name" href="http://m.yohobuy.com/home?tmp='+Math.random()+'">'+t[0]+'</a><a href="http://m.yohobuy.com/passport/signout/index?token='+t[3]+'">退出</a>'),e.removeClass("hide")}(),window.cookie=s,window.getUser=n,window.getUid=i,window.getShoppingKey=o}),define("js/passport/index",["zepto"],function(e,a,t){e("js/passport/register/register"),e("js/passport/register/code"),e("js/passport/register/password"),e("js/passport/login/login"),e("js/passport/login/interational"),e("js/passport/back/mobile"),e("js/passport/back/code"),e("js/passport/back/email"),e("js/passport/back/email-success"),e("js/passport/back/new-password")}),define("js/passport/register/register",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#phone-num"),i=s("#country-select"),o=s("#area-code"),r=s("#btn-next"),l=e("js/passport/api"),d=e("js/plugin/tip"),c=s.trim,p=d.show;l.selectCssHack(s("#country-select")),l.bindClearEvt(),n.bind("input",function(){""===c(n.val())?r.addClass("disable"):r.removeClass("disable")}),i.change(function(){o.text(i.val())}),r.on("touchstart",function(){var e=c(n.val()),a=i.val();r.hasClass("disable")||(l.phoneRegx[a].test(e)?s.ajax({url:"/passport/reg/verifymobile",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/api",["zepto"],function(e,a,t){function s(){var e,a=r(".has-eye");a.append('<div class="eye close"></div>'),e=a.children(".eye"),e.on("touchstart",function(e){var a=r(this),t=a.siblings(".pwd");e.preventDefault(),a.toggleClass("close"),a.hasClass("close")?t.attr("type","password"):t.attr("type","text"),t.focus()})}function n(){var e,a=r(".has-clear");a.append('<div class="clear-input"></div>'),e=a.children(".clear-input"),e.on("touchstart",function(a){var t=e.siblings(".input");t.val("").trigger("input").focus(),a.preventDefault()}),a.children(".input").bind("input",function(){var e=r(this),a=e.siblings(".clear-input"),t=l(e.val());""===t?a.hide():a.show()})}function i(e){return e.length>=6&&e.length<=20?!0:!1}function o(e){function a(){var a=e.find("option:selected").text().length;switch(a){case 2:e.outerWidth(90);break;case 3:e.outerWidth(110);break;default:e.outerWidth(130)}}var t=navigator.userAgent;t.match(/uc/i)&&t.match(/android/i)?e.change(function(){a()}):e.removeClass("in-android-uc")}var r=e("zepto"),l=r.trim,d=/^([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/,c={"+86":/^1[35847]{1}[0-9]{9}$/,"+852":/^[965]{1}[0-9]{7}$/,"+853":/^[0-9]{8}$/,"+886":/^[0-9]{10}$/,"+65":/^[98]{1}[0-9]{7}$/,"+60":/^1[1234679]{1}[0-9]{8}$/,"+1":/^[0-9]{10}$/,"+82":/^01[0-9]{9}$/,"+44":/^7[789][0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/};t.exports={emailRegx:d,phoneRegx:c,bindEyesEvt:s,bindClearEvt:n,pwdValidate:i,selectCssHack:o}}),define("js/plugin/tip",["zepto"],function(e,a,t){function s(e,a){var t,s;"undefined"!=typeof e&&(t=e.toString(),s=a&&a>0?a:2e3,n.text(t).show(),i=setTimeout(function(){"block"===n.css("display")&&n.hide()},s))}var n,i,o=e("zepto");!function(){var e='<div id="yoho-tip" class="yoho-tip"></div>';o(".yoho-page").append(e),n=o("#yoho-tip"),n.on("touchstart",function(){n.hide(),clearTimeout(i)})}(),a.show=s}),define("js/passport/register/code",["zepto"],function(e,a,t){e("js/passport/code")(!0)}),define("js/passport/code",["zepto"],function(e,a,t){var s=e("zepto");t.exports=function(a){function t(){var e,a=59;e=setInterval(function(){0===a?(o.text("重发验证码").removeClass("disable"),clearInterval(e)):o.text("重发验证码 ("+a--+"秒)")},1e3)}var n=s("#captcha"),i=s("#btn-next"),o=s("#captcha-tip"),r=s("#phone-num").val(),l=s("#area-code").val().replace("+",""),d=e("js/passport/api"),c=e("js/plugin/tip"),p=s.trim,u=c.show,h=a?"reg":"back";d.bindClearEvt(),n.bind("input",function(){""!==p(n.val())?i.removeClass("disable"):i.addClass("disable")}),o.on("touchstart",function(){o.hasClass("disable")||s.ajax({type:"POST",url:"/passport/"+h+"/sendcode",data:{phoneNum:r,areaCode:l},success:function(e){200===e.code?(o.text("重发验证码 (60秒)").addClass("disable"),t()):u(e.message)}})}),i.on("touchstart",function(){i.hasClass("disable")||s.ajax({type:"POST",url:"/passport/"+h+"/verifycode",data:{phoneNum:r,areaCode:l,code:p(n.val()),token:s("#token").val()},success:function(e){200===e.code?location.href=e.data:u(e.message)}})}),t()}}),define("js/passport/register/password",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#pwd"),i=s("#btn-sure"),o=e("js/passport/api"),r=e("js/plugin/tip"),l=s.trim,d=r.show;o.bindEyesEvt(),n.bind("input",function(){""===l(n.val())?i.addClass("disable"):i.removeClass("disable")}),i.on("touchstart",function(){var e=l(n.val());i.hasClass("disable")||(o.pwdValidate(e)===!1?d("密码6-20位,请重新输入"):s.ajax({type:"POST",url:"/passport/reg/setpassword",data:{password:e,phoneNum:s("#phone-num").val(),areaCode:s("#area-code").val(),token:s("#token").val()},success:function(e){200===e.code?(d("注册成功"),setTimeout(function(){location.href=e.data},1e3)):401===e.code||404===e.code||505===e.code?d(e.message):(d(e.message),setTimeout(function(){location.href=e.data},1e3))}}))})}),define("js/passport/login/login",["zepto"],function(e,a,t){function s(){u&&h?d.removeClass("disable"):d.addClass("disable")}function n(){c.show(),p.show()}function i(){c.hide(),p.hide()}var o=e("zepto"),r=o("#account"),l=o("#pwd"),d=o("#btn-login"),c=o("#retrive-pwd-mask"),p=o("#retrive-pwd-ways"),u=!1,h=!1,f=e("js/passport/api"),g=e("js/plugin/tip"),v=o.trim,m=g.show;f.bindEyesEvt(),f.bindClearEvt(),r.bind("input",function(){u=""!==v(r.val())?!0:!1,s()}),l.bind("input",function(){h=""===v(l.val())?!1:!0,s()}),d.on("touchstart",function(){var e=v(r.val()),a=v(l.val());d.hasClass("disable")||((/^[0-9]+$/.test(e)||f.emailRegx.test(e))&&f.pwdValidate(a)?o.ajax({type:"POST",url:"/passport/login/auth",data:{account:e,password:a},success:function(e){200===e.code?(m("登录成功"),setTimeout(function(){location.href=e.data},1e3)):m(e.message)},error:function(){m("网络断开连接啦~")}}):m("账号或密码有错误,请重新输入"))}),o("#forget-pwd").on("touchstart",function(){n()}),c.on("touchstart",function(){i()}),o("#cancel-retrive").on("touchstart",function(e){e.preventDefault(),i()}),r.trigger("input"),l.trigger("input")}),define("js/passport/login/interational",["zepto"],function(e,a,t){function s(){c&&p?d.removeClass("disable"):d.addClass("disable")}var n=e("zepto"),i=n("#phone-num"),o=n("#country-select"),r=n("#area-code"),l=n("#pwd"),d=n("#btn-login"),c=!1,p=!1,u=e("js/passport/api"),h=e("js/plugin/tip"),f=n.trim,g=h.show;u.selectCssHack(o),u.bindEyesEvt(),u.bindClearEvt(),i.bind("input",function(){c=""===f(i.val())?!1:!0,s()}),l.bind("input",function(){var e=f(l.val());p=""===e?!1:!0,s()}),o.change(function(){r.text(o.val())}),d.on("touchstart",function(){var e=f(i.val()),a=o.val(),t=f(l.val());d.hasClass("disable")||(u.phoneRegx[a].test(e)&&u.pwdValidate(t)?n.ajax({type:"POST",url:"/passport/login/auth",data:{areaCode:a.replace("+",""),account:e,password:t},success:function(e){200===e.code?(g("登录成功"),setTimeout(function(){location.href=e.data},1e3)):g(e.message)},error:function(){g("网络断开连接啦~")}}):g("账号或密码有错误,请重新输入"))}),i.trigger("input"),l.trigger("input")}),define("js/passport/back/mobile",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#phone-num"),i=s("#country-select"),o=s("#area-code"),r=s("#btn-next"),l=e("js/passport/api"),d=e("js/plugin/tip"),c=s.trim,p=d.show;l.selectCssHack(s("#country-select")),l.bindClearEvt(),n.bind("input",function(){""===c(n.val())?r.addClass("disable"):r.removeClass("disable")}),i.change(function(){o.text(i.val())}),r.on("touchstart",function(){var e=c(n.val()),a=i.val();r.hasClass("disable")||(l.phoneRegx[a].test(e)?s.ajax({url:"/passport/back/sendcode",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/back/code",["zepto"],function(e,a,t){e("js/passport/code")(!1)}),define("js/passport/back/email",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#email"),i=s("#btn-sure"),o=e("js/passport/api"),r=e("js/plugin/tip"),l=s.trim,d=r.show;o.bindClearEvt(),n.bind("input",function(){""===l(n.val())?i.addClass("disable"):i.removeClass("disable")}),i.on("touchstart",function(){var e=l(n.val());i.hasClass("disable")||(o.emailRegx.test(e)?s.ajax({url:"/passport/back/sendemail",type:"POST",data:{email:e},success:function(e){200===e.code?location.href=e.data:d(e.message)}}):d("邮箱格式不正确,请重新输入"))})}),define("js/passport/back/email-success",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#resend"),i=e("js/plugin/tip"),o=i.show;n.on("touchstart",function(e){e.preventDefault(),s.ajax({url:n.data("url"),type:"GET",success:function(e){o(200===e.code?e.message:e.message)}})})}),define("js/passport/back/new-password",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#pwd"),i=s("#btn-ok"),o=e("js/passport/api"),r=e("js/plugin/tip"),l=s.trim,d=r.show,c=s("#phone-num");o.bindEyesEvt(),n.bind("input",function(){""===l(n.val())?i.addClass("disable"):i.removeClass("disable")}),i.on("touchstart",function(){var e,a,t=l(n.val()),r=!0;i.hasClass("disable")||(e={password:t},0===c.length&&(r=!1),r?(s.extend(e,{phoneNum:c.val(),areaCode:s("#areaCode").val(),token:s("#token").val()}),a="/passport/back/passwordByMobile"):(s.extend(e,{code:s("#email-code").val()}),a="/passport/back/passwordByEmail"),o.pwdValidate(t)?s.ajax({type:"POST",url:a,data:e,success:function(e){200===e.code?(d("密码修改成功"),setTimeout(function(){location.href=e.data},1e3)):d(e.message)}}):d("密码6-20位,请重新输入"))})}),define("js/guang/index",["zepto","lazyload","swiper","mlellipsis","index"],function(e,a,t){e("js/guang/plus-star/list"),e("js/guang/plus-star/detail"),e("js/guang/home"),e("js/guang/list")}),define("js/guang/plus-star/list",["zepto","lazyload","swiper","index"],function(e,a,t){var s,n=e("zepto"),i=e("lazyload"),o=e("swiper"),r=n("#nav-tab > li"),l=n("#ps-content > .content");i(n("img.lazy")),s=new o(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),n("#nav-tab").delegate("li","touchstart",function(){n(this).hasClass("focus")||(r.toggleClass("focus"),l.toggleClass("hide"),n(document).trigger("scroll"))})}),define("js/guang/plus-star/detail",["zepto","mlellipsis","lazyload"],function(e,a,t){var s,n,i=e("zepto"),o=e("mlellipsis"),r=e("lazyload"),l=i("#intro"),d=i("#intro-more-txt"),c=i("#related-infos-container"),p=e("js/guang/info"),u=e("js/plugin/tip"),h=i("#brand-info").data("id");o.init(),r(i("img.lazy")),l[0].mlellipsis(3),setTimeout(function(){s=l.text(),n=l.attr("title")}),p.initInfosEvt(c),i("#more-intro").bind("touchstart",function(){var e=i(this);e.toggleClass("spread"),e.hasClass("spread")?(l.text(n),d.text("收起")):(l.text(s),d.text("more"))}),i("#brand-like").bind("touchstart",function(e){var a="ok",t=i(this);e.preventDefault(),t.hasClass("like")&&(a="cancel"),i.ajax({type:"POST",url:"/guang/opt/favoriteBrand",data:{id:h,opt:a},success:function(e){200===e.code?t.toggleClass("like"):400===e.code&&u.show("未登录")},error:function(){u.show("网络断开连接了~")}})})}),define("js/guang/info",["zepto","mlellipsis","lazyload"],function(e,a,t){function s(e){l(e.find("img.lazy")),e.each(function(){var e=o(this),a=e.find(".info-title"),t=e.find(".info-text");a.attr("title")&&t.attr("title")||(a[0].mlellipsis(2),t[0].mlellipsis(2))})}function n(e){e.delegate(".like-btn","touchstart",function(e){var a=o(e.currentTarget),t=a.closest(".guang-info"),s="ok";a.hasClass("like")&&(s="cancel"),o.ajax({type:"POST",url:"/guang/opt/praiseArticle",data:{id:t.data("id"),opt:s},success:function(e){var t=e.code;200===t&&(a.next(".like-count").text(e.data),a.toggleClass("like"))},error:function(){d.show("网络断开连接了~")}})}),s(e.find(".guang-info"))}function i(e,a){h||a.end||(h=!0,o.ajax({type:"GET",url:" /guang/list/page",data:a,success:function(t){return" "===t?(a.end=!0,h=!1,p.addClass("hide"),void u.removeClass("hide")):(e.append(t),s(e.find(".guang-info")),a.page++,void(h=!1))},error:function(){d.show("网络断开连接了~"),h=!1}}))}var o=e("zepto"),r=e("mlellipsis"),l=e("lazyload"),d=e("js/plugin/tip"),c=o("#load-more-info"),p=o(""),u=o(""),h=!1;r.init(),c.length>0&&(p=c.children(".loading"),u=c.children(".no-more")),a.initInfosEvt=n,a.setLazyLoadAndMellipsis=s,a.loadMore=i}),define("js/guang/home",["zepto","swiper","mlellipsis","lazyload","index"],function(e,a,t){var s,n=e("zepto"),i=e("swiper"),o=e("js/guang/info"),r=o.setLazyLoadAndMellipsis,l=o.loadMore,d=n("#load-more-info"),c=n(""),p=n(""),u=n(window).height(),h=d.height(),f=n("#info-list"),g=f.children(".info-list"),v=n("#guang-nav"),m=v.children(".focus"),w=m.data("type"),b={};d.length>0&&(c=d.children(".loading"),p=d.children(".no-more")),s=new i(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),o.initInfosEvt(f),function(){var e=n("#gender").val();v.children(".guang-nav-item").each(function(){var a=n(this).data("type");b[a]={page:1,gender:e,type:a,end:!1}})}(),v.delegate(".guang-nav-item","touchstart",function(){var e,a,t=n(this);t.hasClass("focus")||(a=t.index(),t.addClass("focus"),m.removeClass("focus"),g.not(".hide").addClass("hide"),e=g.eq(a),e.removeClass("hide"),r(e.children(".guang-info")),m=t,w=t.data("type"),b[w].end?(c.addClass("hide"),p.removeClass("hide")):(c.removeClass("hide"),p.addClass("hide")))}),n(document).scroll(function(){n(window).scrollTop()+u>=n(document).height()-h&&l(g,b[w])})}),define("js/guang/list",["zepto","mlellipsis","lazyload"],function(e,a,t){var s=e("zepto"),n=e("js/guang/info"),i=n.loadMore,o=s(window).height(),r=s("#load-more").height(),l=s("#author-infos"),d=s("#tag"),c={page:1,end:!1},p=s("#info-list");n.initInfosEvt(p),l.length>0&&s.extend(c,{authorId:l.data("id")}),d.length>0&&s.extend(c,{tag:d.val()}),s(document).scroll(function(){s(window).scrollTop()+o>=s(document).height()-r&&i(p,c)})}),define("js/home/index",["zepto","swiper","lazyload","index"],function(e,a,t){e("js/home/home"),e("js/home/maybe-like")}),define("js/home/home",["zepto","swiper","lazyload","index"],function(e,a,t){function s(){v+=10,m.css({transform:"rotateX("+v+"deg)","-webkit-transform":"rotateX("+v+"deg)","-moz-transform":"rotateX("+v+"deg)"}),v/90%2===1&&(w?(m.addClass("animate"),w=!1):(m.removeClass("animate"),w=!0)),v/90%2===0&&v%360!==0?window.setTimeout(s,3e3):v%360===0?window.setTimeout(s,18e4):l(function(){s()})}var n,i,o,r,l,d,c,p,u,h=e("zepto"),f=e("swiper"),g=e("lazyload"),v=0,m=h(".home-header .logo"),w=!0;e("js/home/maybe-like"),g(h("img.lazy")),h(".nav-btn").on("click",function(e){h(this).hasClass("menu-open")||(h(".mobile-wrap").addClass("menu-open"),h(".overlay").addClass("show"),h(".side-nav").addClass("on"),h("body").css({height:h(window).height(),width:"100%",overflow:"hidden"})),e.stopPropagation()}),h(".mobile-wrap").on("click",function(){h(this).hasClass("menu-open")&&(h(".mobile-wrap").removeClass("menu-open"),h(".overlay").removeClass("show"),h(".sub-nav").removeClass("show"),h(".side-nav").removeClass("on"),h("body").css({height:"auto",overflow:"auto"}))}),h(".side-nav").on("click","li",function(){h(this).find(".sub-nav").size()>0&&(h(".sub-nav").removeClass("show"),h(this).find(".sub-nav").addClass("show"))}),h(".sub-nav").each(function(){h(this).find("li").eq(0).on("click",function(e){h(".sub-nav").removeClass("show"),e.stopPropagation()})}),h(".sub-nav").on("mouseenter","li",function(){0!==h(this).index()&&h(this).addClass("current").siblings().removeClass("current")}),h(".banner-swiper").find("li").size()>1&&(n=new f(".banner-swiper",{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".banner-top .pagination-inner"})),i=new f(".recommend-swiper",{grabCursor:!0,slidesPerView:"auto",wrapperClass:"recommend-list",slideElement:"li"}),h(".trend-topic-swiper").find("li").size()>1&&(o=new f(".trend-topic-swiper",{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".trend-topic-content .pagination-inner"})),h(".category-swiper").each(function(e,a){p="category-swiper"+e,h(this).addClass(p),h("."+p).find(".swiper-slide").size()>1&&(r=new f("."+p,{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:"."+p+" .pagination-inner"}))}),h(".header-download").on("click",".close-btn",function(){h(this).parent().remove()}),l=function(){var e=null,a=["webkit","moz","ms"];for(c=0;c<a.length;c++)d=a[c]+"RequestAnimationFrame",window[d]&&(u=!0,e=d);return u?function(a){window[e](a)}:function(e){window.setTimeout(e,67)}}(),s()}),define("js/home/maybe-like",["zepto","lazyload"],function(e,a,t){var s,n,i,o,r=e("zepto"),l=e("js/plugin/tip"),d=e("lazyload"),c=r(window).height(),p=r("#load-more").height(),u=r("#goods-list"),h=!1,f=0,g=r(".mobile-wrap").hasClass("boys-wrap")?"1,3":"2,3",v=r(".mobile-wrap").hasClass("kids-wrap")?!0:!1,m=r(".mobile-wrap").hasClass("lifestyle-wrap")?!0:!1,w=r("#maybe-like-nav");n=v?"/product/recom/maylikekids":m?"/product/recom/maylikelife":"/product/recom/maylike?gender="+g,i=w.children(".focus"),r("#maybe-like-nav").delegate("li","touchstart",function(){var e,a=r(this),t=r(".goods-list");a.hasClass("focus")||(o=a.index(),a.addClass("focus"),i.removeClass("focus"),t.not(".hide").addClass("hide"),e=t.eq(o),e.removeClass("hide"),i=a,r(document).trigger("scroll"))}),r(window).scroll(function(){if(r(window).scrollTop()+c>=r(document).height()-p){if(h)return;h=!0,s=u.children(".good-info").length,r.ajax({type:"GET",url:n,data:{page:f+1},success:function(e){return" "===e?void(h=!0):(u.append(e),d(r(".good-info").find("img.lazy")),h=!1,void f++)},error:function(){l.show("网络断开连接了~"),h=!1}})}})}),define("js/product/index",["zepto","swiper","lazyload","index"],function(e,a,t){e("js/product/newsale/newarrival"),e("js/product/newsale/discount"),e("js/product/list"),e("js/product/detail/detail")}),define("js/product/newsale/newarrival",["zepto","swiper","lazyload","index"],function(e,a,t){var s,n,i,o=e("zepto"),r=e("js/plugin/tip"),l=e("swiper"),d=e("lazyload"),c=o("#newarrival-nav"),p=o("#newarrival-goods-list"),u=p.children(".goods-list"),h=o(window).height(),f=o("#load-more").height(),g=o(".goods-list"),v=!1,m=0,w=0;i=new l(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),d(o("img.lazy")),s=c.children(".focus"),o("#newarrival-nav").delegate("li","touchstart",function(){var e,a=o(this);a.hasClass("focus")||(w=a.index(),a.addClass("focus"),s.removeClass("focus"),u.not(".hide").addClass("hide"),e=u.eq(w),e.removeClass("hide"),s=a,o(document).trigger("scroll"))}),o(window).scroll(function(){if(o(window).scrollTop()+h>=o(document).height()-f){if(v)return;v=!0,n=g.children(".good-info").length,o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:{dayLimit:w+1,page:m+1},success:function(e){return" "===e?void(v=!1):(g.append(e),d(o(".good-info").find("img.lazy")),v=!1,void m++)},error:function(){r.show("网络断开连接了~"),v=!1}})}})}),define("js/product/newsale/discount",["zepto","swiper","lazyload","index"],function(e,a,t){function s(e){var a="0.1,0.3";switch(e){case 0:a="0.1,0.3";break;case 1:a="0.4,0.6";break;case 2:a="0.7,0.9";break;case 3:a="0.1,0.9"}return a}var n,i,o=e("zepto"),r=e("swiper"),l=e("lazyload"),d=o("#discount-nav"),c=o("#discount-goods-list"),p=c.children(".goods-list"),u=o(".goods-list"),h=0,f=o(window).height(),g=o("#load-more").height(),v=!1,m=0,w="";i=new r(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),l(o("img.lazy")),n=d.children(".focus"),o("#discount-nav").delegate("li","touchstart",function(){var e,a=o(this);a.hasClass("focus")||(h=a.index(),w=s(h),a.addClass("focus"),n.removeClass("focus"),p.not(".hide").addClass("hide"),e=p.eq(h),e.removeClass("hide"),n=a,o(document).trigger("scroll"))}),o(window).scroll(function(){if(o(window).scrollTop()+f>=o(document).height()-g){if(v)return;v=!0,num=u.children(".good-info").length,o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:{p_d:w,page:m+1},success:function(e){return" "===e?void(v=!1):(u.append(e),l(o(".good-info").find("img.lazy")),v=!1,void m++)},error:function(){tip.show("网络断开连接了~"),v=!1}})}})}),define("js/product/list",["zepto","lazyload"],function(e,a,t){function s(e){var a,t,s,l,d,c={};if(e){for(t in w)w.hasOwnProperty(t)&&(w[t].reload=!0);switch(e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"msort":a={msort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id}}o.extend(v,a)}if(!i){if(n.hasClass("new")?l="newest":n.hasClass("price")?l="price":n.hasClass("discount")&&(l="discount"),s=w[l],d=s.page+1,s.reload)d=1;else if(s.end)return;o.extend(c,v,{type:l,order:s.order,page:d}),i=!0,o.ajax({type:"GET",url:"/product/list/search",data:c,success:function(e){var a,t='<p class="no-result">未找到相关搜索结果</p>';switch(l){case"newest":a=u;break;case"price":a=h;break;case"discount":a=f}" "===e.data?(s.end=!0,s.reload&&a.html(t)):(s.reload?a.html(e.data):a.append(e.data),r(a.find(".lazy"))),s.reload=!0,s.page=d,i=!1}})}}var n,i,o=e("zepto"),r=e("lazyload"),l=o("#brand-header"),d=o("#intro-box"),c=e("js/plugin/filter"),p=o("#goods-container"),u=p.children(".new-goods"),h=p.children(".price-goods"),f=p.children(".discount-goods"),g=o(window).height(),v={gender:o("#gender").val(),brand:o("#brand").val(),msort:o("#msort").val(),color:o("#color").val(),size:o("#size").val(),price:o("#price").val(),discount:o("#discount").val()},m=o("#list-nav"),w={newest:{order:1,reload:!0,page:0,end:!1},price:{order:0,reload:!0,page:0,end:!1},discount:{order:0,reload:!0,page:0,end:!1}};r(o(".lazy")),c.registerCbFn(s),m.delegate("li","touchstart",function(){var e,a,t=o(this);if(t.hasClass("filter"))t.hasClass("active")?(c.hideFilter(),n.addClass("active"),t.removeClass("active")):(n=t.siblings(".active"),n.removeClass("active"),t.addClass("active"),c.showFilter());else{if(t.hasClass("active")){if(t.hasClass("new"))return;(t.hasClass("price")||t.hasClass("discount"))&&t.find(".icon > .iconfont").toggleClass("cur")}else a=t.siblings(".active"),a.hasClass("filter")?(n=t,c.hideFilter()):n=a,a.removeClass("active"),t.addClass("active"),n=a;t.hasClass("new")?e="newest":t.hasClass("price")?e="price":t.hasClass("discount")&&(e="discount"),w[e].reload&&s()}}),o(window).scroll(function(){o(window).scrollTop()+g>o(document).height()-.25*p.height()&&s()}),l.children(".btn-intro").bind("touchstart",function(){d.removeClass("hide")}),o(".close-intro, .brand-intro-box").click(function(){d.addClass("hide")}),o("#brand-intro").click(function(e){e.stopPropagation()}),l.children(".btn-col").bind("touchstart",function(){o(this).toggleClass("coled")})}),define("js/plugin/filter",["zepto"],function(e,a,t){function s(){l.addClass("hide")}function n(){l.removeClass("hide")}function i(e){o=e}var o,r=e("zepto"),l=r(".filter-mask, .filter-body"),d=l.find(".classify"),c=l.find(".sub-classify");d.children(":first-child").addClass("active"),d.delegate(".classify-item","touchstart",function(){var e=r(this);e.hasClass("active")||(e.siblings(".active").removeClass("active"),e.addClass("active"))}),l.filter(".filter-mask").click(function(){s()}),c.delegate("li","click",function(e){var a,t,n=r(this),i=n.data("id"),l=n.closest(".sub-classify"),d=l.siblings(".shower");e.stopPropagation(),n.hasClass("chosed")||(l.children(".chosed").removeClass("chosed"),n.addClass("chosed"),a=r.trim(n.html()),t=r.trim(d.html()),d.html(t.substring(0,t.indexOf("</span>")+7)+a.substring(0,a.indexOf("<i"))),0===n.index()?d.addClass("default"):d.removeClass("default"),o&&o({type:l.data("type"),id:i}),s())}),a.showFilter=n,a.hideFilter=s,a.registerCbFn=i}),define("js/product/detail/detail",["zepto","swiper","lazyload","index"],function(e,a,t){var s,n=e("zepto"),i=e("swiper"),o=e("lazyload");o(n("img.lazy")),s=new i(".banner-swiper",{loop:!0,pagination:".banner-top .pagination-inner",slideElement:"li",nextButton:".swiper-button-next",prevButton:".swiper-button-prev"})}),define("js/index/index",["zepto"],function(e,a,t){e("js/index/search"),e("js/index/channel")}),define("js/index/search",["zepto"],function(e,a,t){var s=e("zepto"),n=s("#search-input > input"),i=s("#search-input > .clear-input"),o=s(".history");s("#clear-history").bind("touchstart",function(){s.ajax({type:"POST",url:"/search/clearHistory",success:function(e){200===e.code&&o.html("")}})}),s("#search").bind("touchstart",function(){var e=n.val();s.ajax({type:"POST",url:"/search",data:{val:e},success:function(e){200===e.code&&(location.href=e.data)}})}),n.bind("input",function(){""===n.val()?i.addClass("hide"):i.removeClass("hide")}),i.bind("touchstart",function(){n.val("").trigger("input")})}),define("js/index/channel",[],function(e,a,t){});
\ No newline at end of file
... ...
... ... @@ -2,7 +2,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Wed Oct 21 19:30:11 2015
Created by FontForge 20120731 at Thu Oct 22 11:17:10 2015
By Ads
</metadata>
<defs>
... ... @@ -16,10 +16,10 @@ Created by FontForge 20120731 at Wed Oct 21 19:30:11 2015
ascent="812"
descent="-212"
x-height="792"
bbox="0 -224 3943 812.871"
bbox="-0.75 -224 3943 812.871"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-E625"
unicode-range="U+0078-E626"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
... ... @@ -114,9 +114,6 @@ d="M224 192q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28zM512 1
<glyph glyph-name="uniE619" unicode="&#xe619;"
d="M126 225q30 0 50.5 21.5t20.5 52.5q0 33 -20.5 54.5t-51 21.5t-51.5 -21.5t-21 -54.5q0 -45 38 -66q17 -8 35 -8zM512 225q15 0 28.5 5.5t23 15.5t15 24t5.5 29q0 9 -2 18t-5.5 16.5t-8 14t-10.5 11.5t-13.5 9t-15.5 5.5t-17 1.5q-30 0 -51 -21.5t-21 -54.5q0 -45 38 -66
q16 -8 34 -8zM899.5 225q30.5 0 51 21.5t20.5 52.5q0 9 -2 18t-5.5 16.5t-8 14t-11 11.5t-13.5 9t-15 5.5t-17 1.5q-20 0 -36.5 -9.5t-26 -27t-9.5 -39.5q0 -31 21 -52.5t51.5 -21.5z" />
<glyph glyph-name="uniE61A" unicode="&#xe61a;"
d="M511 -84q-102 0 -188.5 50t-137 137t-50.5 189t50.5 188.5t137 137t188.5 50.5t189 -50.5t137 -137t50 -188.5t-50 -189t-137 -137t-189 -50zM676 421q7 6 0 12l-6 7q-2 2 -5.5 2t-6.5 -2l-138 -139l-137 137q-6 6 -12 0l-6 -6q-6 -6 0 -12l136 -137l-138 -138
q-6 -6 0 -12l6 -6q7 -7 13 0l138 138l138 -139q6 -6 13 0l6 6q6 6 0 13l-139 138zM676 421z" />
<glyph glyph-name="uniE61B" unicode="&#xe61b;"
d="M437 41h-193q-27 2 -41.5 22.5t-17.5 45.5q3 25 17.5 41t41.5 18h193v63l-193 1q-27 2 -41.5 19t-17.5 43q3 25 17.5 41t41.5 18h144l-134 236q-10 12 -19 30.5t-8 40.5q5 28 20 45.5t56 22.5q24 -2 43 -16.5t31 -31.5l152 -278l167 280q12 17 31 30t43 16q15 -1 27.5 -4
t22 -10t16 -20t9.5 -34q0 -29 -20 -55l-155 -252h147q26 -2 41 -18t17 -41q-2 -26 -17.5 -44t-41.5 -20l-191 -1v-61h192q26 -2 41 -20t17 -43q-2 -26 -17 -43.5t-41 -19.5l-192 1v-106q-4 -85 -93 -85q-44 0 -68.5 21t-26.5 64v104z" />
... ... @@ -146,5 +143,7 @@ d="M835 576l-60 63l-263 -275v0l-263 275l-60 -63l262 -276l-262 -276l60 -63l263 27
d="M459 754h22h23h20h22h22v-191v-191h191h191v-109h-191h-191v-191v-190h-109v190v191h-191h-190q-1 37 -1 109h128h127h127v116v150v116z" />
<glyph glyph-name="uniE625" unicode="&#xe625;" horiz-adv-x="1000"
d="M77 372h873v-109h-873v109z" />
<glyph glyph-name="uniE626" unicode="&#xe626;"
d="M866.5 663.5q-97.5 97.5 -228 132t-261.5 0t-228.5 -132t-132 -228.5t0 -261.5t132 -228t228.5 -132t261.5 0t228 132t132 228t0 261.5t-132 228.5zM798 115l-101 -101l-187 186l-186 -186l-101 101l186 186l-186 187l101 101l186 -186l187 186l101 -101l-186 -187z" />
</font>
</defs></svg>
... ...