mirror of
https://gitee.com/coder-xiaomo/flashsale
synced 2025-01-11 12:18:22 +08:00
107 lines
3.0 KiB
JavaScript
107 lines
3.0 KiB
JavaScript
(function( $ ){
|
||
|
||
var methods = {
|
||
init : function( options ){
|
||
var $this = this;
|
||
options = $.extend( $.fn.drnavbar.options, options );
|
||
|
||
$this.data('previousScroll', 0);
|
||
|
||
$('#drNavbarUser').click(function(e){
|
||
var isVisible = $(".drNavbarPopover").is(":visible");
|
||
if(isVisible){
|
||
$this.drnavbar("hideDropDownMenu");
|
||
}else{
|
||
$('#drNavbarUser').trigger("drNavbarPopoverFocus");
|
||
}
|
||
});
|
||
|
||
//focusout在safari下无法获取related target,不得已加入mousedown check focus out
|
||
function installMouseDown(){
|
||
$(document).one("mousedown",function(e){
|
||
var target = e.target;
|
||
if(target != null){
|
||
if(target==$('#drNavbarUser')[0]){
|
||
return;
|
||
}
|
||
var targetParents = $(target).parents();
|
||
for(var i = 0; i < targetParents.length;i++){
|
||
var parent = targetParents[i];
|
||
if(parent == $(".drNavbarDropDownMenu")[0]){
|
||
installMouseDown();
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
$('#drNavbarUser').trigger("click");
|
||
});
|
||
}
|
||
$('#drNavbarUser').on("drNavbarPopoverFocus",function(){
|
||
$this.drnavbar("showDropDownMenu");
|
||
setTimeout(installMouseDown,200);
|
||
});
|
||
//设置
|
||
$("#drNavbarDropdownSetting").hover(function(){
|
||
$("#drNavbarDropdownSetting span").css("color","black");
|
||
},function(){
|
||
$("#drNavbarDropdownSetting span").css("color","");
|
||
});
|
||
//退出
|
||
$("#drNavbarDropdownLogout").hover(function(){
|
||
$("#drNavbarDropdownLogout span").css("color","black");
|
||
},function(){
|
||
$("#drNavbarDropdownLogout span").css("color","");
|
||
});
|
||
|
||
|
||
showDropDownMenu:function(){
|
||
$(".drNavbarPopover").show();
|
||
var deviceType = $.getDeviceWidthType();
|
||
var deviceWidth = $.getDeviceWidth();
|
||
var deviceHeight = $.getDeviceHeight();
|
||
if(deviceType == 1){
|
||
var top = 71;
|
||
var width = deviceWidth;
|
||
var height = deviceHeight - top;
|
||
|
||
var arrowTop = -14;
|
||
var arrowLeft = width - 38;
|
||
$(".drNavbarPopover").css("top",top+"px");
|
||
$(".drNavbarPopover").css("width",width+"px");
|
||
$(".drNavbarPopover").css("height",height+"px");
|
||
$(".drNavbarPopover").css("left","0px");
|
||
$(".drNavbarPopoverArrow").css("left",arrowLeft+"px");
|
||
|
||
}
|
||
},
|
||
hideDropDownMenu:function(){
|
||
$(".drNavbarPopover").hide();
|
||
$(".drNavbarPopover").css("top","");
|
||
$(".drNavbarPopover").css("width","");
|
||
$(".drNavbarPopover").css("height","");
|
||
$(".drNavbarPopover").css("left","");
|
||
$(".drNavbarPopoverArrow").css("left","");
|
||
|
||
}
|
||
|
||
|
||
};
|
||
|
||
|
||
|
||
$.fn.drnavbar = function( method ) {
|
||
|
||
// Method calling logic
|
||
if ( methods[method] ) {
|
||
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
|
||
} else if ( typeof method === 'object' || ! method ) {
|
||
return methods.init.apply( this, arguments );
|
||
} else {
|
||
$.error( 'Method ' + method + ' does not exist on jQuery.drnavbar' );
|
||
}
|
||
|
||
};
|
||
|
||
$.fn.drnavbar.options = {notificationUnReadTotalCount:0, personallettersUnReadTotalCount:0};
|
||
|
||
})( jQuery );
|