html树形菜单特效,Div+CSS+JS树型菜单,可刷新

Div+CSS+JS树型菜单,可刷新

#PARENT{

width:300px;

padding-left:20px;

}

工作需要搞了一个菜单,分享给大家,大家一齐学习

请大家支持:[url]#[/url]

var LastLeftID = "";

function menuFix() {

var obj = document.getElementById("nav").getElementsByTagName("li");

for (var i=0; i

obj[i].οnmοuseοver=function() {

this.className+=(this.className.length>0? " ": "") + "sfhover";

}

obj[i].onMouseDown=function() {

this.className+=(this.className.length>0? " ": "") + "sfhover";

}

obj[i].onMouseUp=function() {

this.className+=(this.className.length>0? " ": "") + "sfhover";

}

obj[i].οnmοuseοut=function() {

this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");

}

}

}

function DoMenu(emid)

{

var obj = document.getElementById(emid);

obj.className = (obj.className.toLowerCase() == "expanded"?"collapsed":"expanded");

if((LastLeftID!="")&&(emid!=LastLeftID)) //关闭上一个Menu

{

document.getElementById(LastLeftID).className = "collapsed";

}

LastLeftID = emid;

}

function GetMenuID()

{

var MenuID="";

var _paramStr = new String(window.location.href);

var _sharpPos = _paramStr.indexOf("#");

if (_sharpPos >= 0 && _sharpPos

{

_paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length);

}

else

{

_paramStr = "";

}

if (_paramStr.length > 0)

{

var _paramArr = _paramStr.split("&");

if (_paramArr.length>0)

{

var _paramKeyVal = _paramArr[0].split("=");

if (_paramKeyVal.length>0)

{

MenuID = _paramKeyVal[1];

}

}

/*

if (_paramArr.length>0)

{

var _arr = new Array(_paramArr.length);

}

//取所有#后面的,菜单只需用到Menu

//for (var i = 0; i

{

var _paramKeyVal = _paramArr[i].split('=');

if (_paramKeyVal.length>0)

{

_arr[_paramKeyVal[0]] = _paramKeyVal[1];

}

}

*/

}

if(MenuID!="")

{

DoMenu(MenuID)

}

}

GetMenuID(); //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果

menuFix();

-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!以下是一个示例,使用 HTMLCSS 和 JavaScript 创建一个可以展开收缩并且可以选择的树形结构: ```html <!DOCTYPE html> <html> <head> <style> /* 树节点的样式 */ .tree-node { margin-left: 20px; cursor: pointer; } /* 树节点的连接线 */ .tree-connector { position: absolute; border-left: 1px solid #ccc; height: 100%; left: -20px; } </style> </head> <body> <div id="tree"> <ul> <li class="tree-node" onclick="toggleNode(this)"> <span>Root</span> <ul> <li class="tree-node" onclick="toggleNode(this)"> <span>Child 1</span> <ul> <li><input type="checkbox" class="tree-checkbox">Grandchild 1</li> <li><input type="checkbox" class="tree-checkbox">Grandchild 2</li> </ul> </li> <li><input type="checkbox" class="tree-checkbox">Child 2</li> <li class="tree-node" onclick="toggleNode(this)"> <span>Child 3</span> <ul> <li><input type="checkbox" class="tree-checkbox">Grandchild 3</li> </ul> </li> </ul> </li> </ul> </div> <script> // 展开/收缩节点 function toggleNode(node) { const childUl = node.querySelector('ul'); if (childUl) { childUl.style.display = childUl.style.display === 'none' ? 'block' : 'none'; } } </script> </body> </html> ``` 这个示例创建了一个带有展开收缩功能和可选择节点的树形结构。每个节点都使用 `<li>` 标签表示,并使用 `<ul>` 标签嵌套子节点。点击每个节点时,通过 JavaScript 的 `onclick` 事件触发 `toggleNode()` 函数来展开或收缩子节点。同时,每个节点下方有一个复选框,可以选择或取消选择该节点。 你可以根据自己的需求修改这个示例,添加更多节点或自定义样式。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值