Jquery plugin制作:浮动树菜单

本文介绍了如何使用jQuery创建一个浮动的树状菜单插件。通过调用该插件,可以实现一种视觉效果良好的浮动树形导航,提供用户友好的浏览体验。示例中展示了插件的使用方法及浮动树菜单的展示效果。


(function($){

var defaults ={
x: 0,  //元素右下角x的偏移量
y: -300,//元素右下角y的偏移量
width:150,
height:'auto',
contentHeight:600,
background:'#222d32'

}

$.fn.lineTreeLayer = function(options){

   var _options = $.extend({},defaults,options);
   
var initLayer = function(_options){
if($("#lineTreeLayer").length > 0){
$("#lineTreeLayer").show();
}else{
var showinfo = "<div id='lineTreeLayer' style='left:"+_options.x+"px;top:"+_options.y+"px;width:"+_options.width+"px;padding:0;color:#ffffff;background:"+_options.background+"; position:absolute; z-index:999999; border: 1px solid #ffffff;'>";
showinfo += "<div style='background:#aabbcc; text-decoration:none'><a href='javascript:closelineTreeLayer();'>删除</a></div>";
showinfo += "<div style='min-height:"+_options.contentHeight+"px; height:"+_options.contentHeight+"px;overflow-y:auto;' id='mtLocationRunDiagramTree' class='ztree'></div>"; 
showinfo +="</div>";
getRoadLineTree();
$(document.body).append(showinfo);

var styles = ".ztree li span.button.treeroad_ico_docu{margin-right:-2px;vertical-align:baseline; background-image: none!important; font-size:12px; color:#428bca;}";
styles += ".ztree *{color:#ffffff}";
var style = document.createElement("style");
(document.getElementsByTagName("head")[0] || document.body).appendChild(style);
if (style.styleSheet) { //for ie
style.styleSheet.cssText = styles;
} else {//for w3c
style.appendChild(document.createTextNode(styles));
}


}
 
}

this.on("click",function(){


//鼠标点击元素的右下角位置
var x = $(this).offset().left + $(this).width();
var y = $(this).offset().top + $(this).height();
//构建线路树的dom元素

var _param = $.extend({},_options,{'x':x+_options.x,'y':y+_options.y});

initLayer(_param);
})
//隐藏线路树
this.close = function(){
$("#lineTreeLayer").remove();
}

this.getRoadLineTree = function(_treeDiv) {

$.get('/BsRoadinfo/RoadTreeJson.koala').done(function(data){
var zNodes = JSON.parse(data);
var setting = {
    check: {
    enable: true,
chkboxType: { "Y": "p", "N": "s" },
autoCheckTrigger: true
    },
callback: {
onClick: onTreeClick
}
 };
$.fn.zTree.init($("#mtLocationRunDiagramTree"), setting, zNodes);
});
}

var onTreeClick = function(event, treeId, treeNode, clickFlag) {
   if(window.Addtabs != undefined) window.Addtabs.close("tab_BsBusdiagarm-Maplist");
   
   var roadidlist = getCheckedRoadId();
   alert(roadidlist)
   var target ="pages/domain/BsBusdiagarm-mutil-Maplist.jsp?roadid="+roadidlist;
   openTab(target, "运行简图", 'BsBusdiagarm-Maplist');
   closelineTreeLayer();
}
var getCheckedRoadId = function(){
 var treeObj=$.fn.zTree.getZTreeObj("mtLocationRunDiagramTree");
           nodes=treeObj.getCheckedNodes(true),
           roadidlist="";
           for(var i=0;i<nodes.length;i++){
            if(nodes[i].id == 0) continue;
            roadidlist+=nodes[i].id + ",";
           }
           return roadidlist;
}
window.closelineTreeLayer = this.close;
window.getRoadLineTree = this.getRoadLineTree;
window.getChildrenData = this.getChildrenData;
}

})(window.jQuery)


调用此浮动线路树菜单:



浮动树菜单如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值