JavaScript 实现百叶窗式下拉菜单效果
作者:青柠时间:2026-10-21 19:34:48浏览:143
本文提供了一段 JavaScript 代码,用于实现类似百叶窗效果的下拉菜单。通过获取 DOM 元素并操作其样式属性,如边框颜色和位置,实现动态交互效果。
JavaScript 实现百叶窗式下拉菜单效果
直接提供实现代码,具体代码如下所示:
核心代码实现
function leftmove(){
var oLeft_ul=document.getElementById('left_ul');
var aLeft_li=oLeft_ul.children;//获得左侧ul下的第一个子集li
var aleft_ul_hidden=oLeft_ul.getElementsByTagName('ul');
var aleft_span_hidden=oLeft_ul.getElementsByTagName('span');
var arr=[];
var span_arr=[];
getclassname(aleft_ul_hidden,'cl_hidden',arr)
getclassname(aleft_span_hidden,'sj',span_arr);
for(var i=0;i<aLeft_li.length;i++){
aLeft_li[i].index=i;
aLeft_li[i].onmouseenter=function(){
for(var j=0;j<aLeft_li.length;j++){
move(aLeft_li[j],{height:40});
span_arr[j].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
span_arr[j].style.top='13px';
span_arr[j].style.left='8px';
}
var ul_height=arr[this.index].children.length*40
move(aLeft_li[this.index],{height:40+ul_height});
span_arr[this.index].style.borderColor='#666 #0ad #0ad #0ad';
span_arr[this.index].style.top='17px';
span_arr[this.index].style.left='6px';
};
aLeft_li[i].onmouseleave=function(){
for(var j=0;j<aLeft_li.length;j++){
move(aLeft_li[j],{height:40});
span_arr[j].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
span_arr[j].style.top='13px';
span_arr[j].style.left='8px';
}
};
arr[i].onmouseover=function(){
for(var i=0;i<arr.length;i++){
span_arr[i].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
span_arr[i].style.top='13px';
span_arr[i].style.left='8px';
}
span_arr[this.parentNode.index].style.borderColor='#666 #f2f2f2 #f2f2f2 #f2f2f2';
span_arr[this.parentNode.index].style.top='17px';
span_arr[this.parentNode.index].style.left='6px';
};
arr[i].onmouseout=function(){
for(var i=0;i<arr.length;i++){
span_arr[i].style.borderColor='#f2f2f2 #f2f2f2 #f2f2f2 #666';
span_arr[i].style.top='13px';
span_arr[i].style.left='8px';
}
span_arr[this.parentNode.index].style.borderColor='#666 #0ad #0ad #0ad';
span_arr[this.parentNode.index].style.top='17px';
span_arr[this.parentNode.index].style.left='6px';
};
}
}
leftmove();
作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
