You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

183 lines
5.8 KiB

jQuery(function($){
//创建DOM
var
quickHTML = document.querySelector("div.quick_link_mian"),
quickShell = $(document.createElement('div')).html(quickHTML).addClass('quick_links_wrap'),
quickLinks = quickShell.find('.quick_links');
quickPanel = quickLinks.next();
quickShell.appendTo('.mui-mbar-tabs');
//具体数据操作
var
quickPopXHR,
loadingTmpl = '<div class="loading" style="padding:30px 80px"><i></i><span>Loading...</span></div>',
popTmpl = '<a href="javascript:;" class="ibar_closebtn" title="关闭"></a><div class="ibar_plugin_title"><h3><%=title%></h3></div><div class="pop_panel"><%=content%></div><div class="arrow"><i></i></div><div class="fix_bg"></div>',
historyListTmpl = '<ul><%for(var i=0,len=items.length; i<5&&i<len; i++){%><li><a href="<%=items[i].productUrl%>" target="_blank" class="pic"><img alt="<%=items[i].productName%>" src="<%=items[i].productImage%>" width="60" height="60"/></a><a href="<%=items[i].productUrl%>" title="<%=items[i].productName%>" target="_blank" class="tit"><%=items[i].productName%></a><div class="price" title="单价"><em>&yen;<%=items[i].productPrice%></em></div></li><%}%></ul>',
newMsgTmpl = '<ul><li><a href="#"><span class="tips">新回复<em class="num"><b><%=items.commentNewReply%></b></em></span>商品评价/晒单</a></li><li><a href="#"><span class="tips">新回复<em class="num"><b><%=items.consultNewReply%></b></em></span>商品咨询</a></li><li><a href="#"><span class="tips">新回复<em class="num"><b><%=items.messageNewReply%></b></em></span>我的留言</a></li><li><a href="#"><span class="tips">新通知<em class="num"><b><%=items.arrivalNewNotice%></b></em></span>到货通知</a></li><li><a href="#"><span class="tips">新通知<em class="num"><b><%=items.reduceNewNotice%></b></em></span>降价提醒</a></li></ul>',
quickPop = quickShell.find('#quick_links_pop'),
quickDataFns = {
//购物信息
cart_list: {
title: '购物车',
content: null,
init:$.noop
},
mpbtn_total:{
title: '我的资产',
content: null,
init:$.noop
},
mpbtn_history:{
title: '我的足迹',
content:'',
init: $.noop
},
mpbtn_collection:{
title: '我的收藏',
content: null ,
init: $.noop
},
mpbtn_order:{
title: '我的订单',
content: null,
init: $.noop
}
};
//showQuickPop
var
prevPopType,
prevTrigger,
doc = $(document),
popDisplayed = false,
//初始化和点击收起
hideQuickPop = function(){
if(prevTrigger){
prevTrigger.removeClass('current');
}
popDisplayed = false;
prevPopType = '';
quickShell.css({width:40});
},
//点击展开
showQuickPop = function(type){
if(quickPopXHR && quickPopXHR.abort){
quickPopXHR.abort();
}
if(type !== prevPopType){
var fn = quickDataFns[type];
quickShell.css({width:320});
function return_content(result)
{
fn.content=result.content
quickPop.html(ds.tmpl(popTmpl, fn));
fn.init.call(this, fn);
}
Ajax.call('get_ajax_content.php?act=get_content', 'data_type=' + type, return_content, 'POST', 'JSON');
}
doc.unbind('click.quick_links').one('click.quick_links', hideQuickPop);
quickPop[0].className = 'quick_links_pop quick_' + type;
popDisplayed = true;
prevPopType = type;
quickPop.show();
/*var popPanel = quickPop.find('.pop_panel'),
ibarTitle = quickPop.find('.ibar_plugin_title');
popPanel.css({'height':view.height()-ibarTitle.height()});
view.resize(function(){
popPanel.css({'height':view.height()-ibarTitle.height()});
});*/
};
quickShell.bind('click.quick_links', function(e){
e.stopPropagation();
});
//关闭按钮
quickPop.delegate('a.ibar_closebtn','click',function(){
if(prevTrigger){
prevTrigger.removeClass('current');
}
popDisplayed = false;
prevPopType='';
quickShell.css({width:40});
});
//通用事件处理
var
view = $(window),
quickLinkCollapsed = !!ds.getCookie('ql_collapse'),
getHandlerType = function(className){
return className.replace(/current/g, '').replace(/\s+/, '');
},
showPopFn = function(){
var type = getHandlerType(this.className);
if(popDisplayed && type === prevPopType){
return hideQuickPop();
}
showQuickPop(this.className);
if(prevTrigger){
prevTrigger.removeClass('current');
}
prevTrigger = $(this).addClass('current');
},
quickHandlers = {
//购物车,最近浏览,商品咨询
my_qlinks: showPopFn,
cart_list: showPopFn,
mpbtn_total: showPopFn,
leave_message: showPopFn,
mpbtn_history:showPopFn,
mpbtn_order:showPopFn,
mpbtn_collection:showPopFn,
//返回顶部
return_top: function(){
ds.scrollTo(0, 0);
hideReturnTop();
}
};
quickShell.delegate('a', 'click', function(e){
var type = getHandlerType(this.className);
if(type && quickHandlers[type]){
quickHandlers[type].call(this);
e.preventDefault();
}
});
//Return top
var scrollTimer, resizeTimer, minWidth = 1350;
function resizeHandler(){
clearTimeout(scrollTimer);
scrollTimer = setTimeout(checkScroll, 160);
}
function checkResize(){
quickShell[view.width() > 1340 ? 'removeClass' : 'addClass']('quick_links_dockright');
}
function scrollHandler(){
clearTimeout(resizeTimer);
resizeTimer = setTimeout(checkResize, 160);
}
function checkScroll(){
view.scrollTop()>100 ? showReturnTop() : hideReturnTop();
}
function showReturnTop(){
quickPanel.addClass('quick_links_allow_gotop');
}
function hideReturnTop(){
quickPanel.removeClass('quick_links_allow_gotop');
}
view.bind('scroll.go_top', resizeHandler).bind('resize.quick_links', scrollHandler);
quickLinkCollapsed && quickShell.addClass('quick_links_min');
resizeHandler();
scrollHandler();
});