web项目中经常会出现左侧侧边栏,右侧显示内容的web页面。
效果如图:
如何实现点击本周食谱,本周食谱的列表隐藏或显示切换,并关闭下周食谱列表显示,点击下周食谱,让下周食谱的列表隐藏切换显示,并关闭本周食谱列表显示
实现思路:
1.布局:
布局顶部的topDiv,左侧的leftDiv(optionDiv,navListUl),
布局右侧的contentDiv.
布局如图:
2.js控制optionDiv和navListUl
①.当点击optionDiv的时候添加本次是否点击的in类标记,
②.移除其他optionDiv的active类标记,
③.当前的optionDiv拥有active类时移除active类,没有avtive类时,添加active类。
④.隐藏所有的navListUL
⑤.显示类为avtive的optionDiv下面的navListUL
⑥.移除optionDiv的时候添加本次是否点击的in类标记,
实现代码:
html:
<div> <div> 本周食谱 </div> <ul> <li date-id="1">周一食谱</li> <li date-id="2">周二食谱</li> <li date-id="3">周三食谱</li> <li date-id="4">周四食谱</li> <li date-id="5">周五食谱</li> <li date-id="6">周六食谱</li> <li date-id="7">周日食谱</li> </ul> <div> 下周食谱 </div> <ul> <li date-id="1">周一食谱</li> <li date-id="2">周二食谱</li> <li date-id="3">周三食谱</li> <li date-id="4">周四食谱</li> <li date-id="5">周五食谱</li> <li date-id="6">周六食谱</li> <li date-id="7">周日食谱</li> </ul> </div>
js:
//控制侧边栏的显示与隐藏 $(".option_title").click(function(){ $(this).addClass("in"); //对不是类class为in的元素移除active类 $(".option_title").not(".in").removeClass("active"); //多次点击设置改元素的类为active或不是active $(this).toggleClass("active"); //以滑动方式隐藏所有list $(".nav-list").slideUp(); //以滑动方式显示元素 $(".active").next().slideDown(); //移除选中optionDiv的in类 $(this).removeClass("in"); });
PS:感兴趣的朋友可以使用如下在线工具测试上述代码:
在线HTML/CSS/JavaScript前端代码调试运行工具:
更多关于jQuery相关内容还可查看本站专题:《jQuery切换特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》