- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVASCRIPT 多级联动浮动(下拉)菜单
JavaScript 多级联动浮动(下拉)菜单
(第二版)
上一个版本 (第一版请看这里)基本实现了多级联动和浮动菜单的功能,但效果
不是太好,使用麻烦还有些bug,实用性不高。
这次除了修改已发现的问题外,还对程序做了大幅调整和改进,使程序实用性更
高,功能更强大。
效果预览
菜单使用演示:
自定义样式
下拉菜单
任意定位
位置:
仿京东商城商品分类菜单:
图片动画
图片效果
动画效果
系统其他
系统效果
其他效果
仿window xp右键菜单:
仿淘宝拼音索引菜单:
Tag索引
Table
Fixed
Color
Date
Select
程序原理
程序最关键的地方是多级联动,先大概说明一下:
首先第一级的菜单元素整理好后,从他们开始,当某个菜单元素触发显示下级菜
单时,
准备好下一级的容器元素,并把下一级的菜单元素放进去,再定位并显示容器元
素。
里面的菜单元素又可以触发显示下级菜单,然后按上面的步骤执行下去。
这样一级一级的递推下去,形成多级的联动菜单。
程序说明
【容器对象】
在多级联动中,每一级都需要一个容器元素来存放菜单元素。
程序中每个容器元素都对应一个容器对象,用来记录该容器的相关信息。
容器对象的集合记录在程序的_containers属性中。
容器参数containers是程序实例化时的必要参数,它的结构如下:
[
容器元素(id),
{ id: 容器元素(id), menu: 插入菜单元素(id) },
]
首先如果containers不是数组的话,程序会自动转成单元素数组。
如果菜单插入的元素就是容器元素本身,可以直接用容器元素(id)作为数组元
素。
否则应该使用一个对象结构,它包括一个id属性表示是容器元素(id)和一个
menu属性表示菜单插入的元素(id)。
containers会在程序初始化时这样处理:
Code
主要是生成一个容器对象,其中pos属性是容器元素,menu属性是插入菜单的
元素。
然后传递索引和容器对象给_iniContainer函数,对容器对象做初始化。
在_iniContainer 中,首先用_resetContainer重置容器对象可能在程序中设置
过的属性。
再给容器元素添加事件:
Code
在mouseout时,先判断是否容器内部或容器之间触发,不是的话再用定时器执
行hide隐藏函数。
在hide里面,主要是隐藏容器:
this._forEachContainer(function(o, i){
if ( i 0 ) {
this._resetCss(o);
} else {
this._hideContainer(o);
};
});
由于第一级容器一般是不自动隐藏的,只需要用_resetCss来重置样式。
其他容器会用_hideContainer函数来处理隐藏:
$$D.setStyle( container.pos, { left: -9999px, top: -9999px,
visibility: hidden } );
this._containers[container._index - 1]._active null;
其中_active属性是保存该容器触发下级菜单的菜单对象,在隐藏容器同时重置
上一级容器的_active。
在mouseover时清除容器定时器,其实就是取消hide执行。
之后是设置样式:
if ( index ) {
$$D.setStyle(container.pos, {
position: absolute, display: block, margin:
0,
zIndex: this._containers[index - 1].pos.style.zInd
ex + 1
});
};
除了第一级容器外,都设置浮动需要的样式。
最后用_index属性记录索引,方便调用,并把容器对象插入到容器集合中:
container._index index;
this._containers[i
您可能关注的文档
- HXN5型双司机室电路图.pdf
- http协议学习系列-阿蜜果.pdf
- Hyper-V热迁移vs vMotion虚拟机迁移指南.pdf
- HyperMesh基础网格划分技巧_simwe公开课.pdf
- HyperMesh白车身结构强度分析报告.pdf
- HYZ4(C)呼吸器说明书(安标备案140509).pdf
- HYZ型油压装置组合阀说明书.pdf
- i.MX6(LA-F3155-V1.05)主板规格书.pdf
- IAEA-277号报告.pdf
- I-share互动式体验终端产品方案20130828.pdf
- 山东省淄博市淄川区2024-2025学年九年级上学期1月期末化学试题 .docx
- 陕西省安康市旬阳市部分学校2024-2025学年九年级上学期期末数学试题.docx
- 陕西省宝鸡市凤翔区2024-2025学年八年级上学期期末考试语文试题.docx
- 陕西省渭南市临渭区2024-2025学年八年级上学期期末教学质量调研语文试卷.docx
- 陕西省宝鸡市高新区2024-2025学年九年级上学期期末质量检测化学试题 .docx
- 陕西省韩城市2024-2025学年九年级上学期期末检测化学试题.docx
- 陕西省西安高新第一中学2024-2025学年八年级上学期期末考试语文试题.docx
- 陕西省西安高新第一中学2024-2025学年九年级上学期期末化学试题.docx
- 陕西省渭南市韩城市2022-2023学年高二上学期期末物理试题.docx
- 山西省晋城市泽州县2024-2025学年八年级上学期1月期末考试英语试题.docx
最近下载
- 第9课《创新增才干》第1框《创新是引领发展的第一动力》同步课堂精品课件-【中职专用】《哲学与人生》.pptx VIP
- DL-T5434-2024电力建设工程监理规范.pptx VIP
- 2013浙G35 预应力离心混凝土空心方桩.docx
- 铜陵学院《面向对象程序设计(Java)》2023-2024学年第一学期期末试卷.doc VIP
- 2023年番茄行业市场前景分析.docx VIP
- 元旦假期温馨提醒60条!.doc VIP
- 过渡金属复合材料制备及其催化MgH2储氢性能研究.pdf VIP
- 人力总监年终总结与规划.pptx VIP
- 江西2021年普高专升本《大学英语》真题及答案.docx VIP
- 第二节 19世纪后期资本主义国家发展趋势.ppt VIP
原创力文档


文档评论(0)