js,jq,css多方面实现简易下拉菜单
2017-05-13 10:26
471 查看
效果图预览
css部分
html和js部分(实现方法二)
css部分
css部分
以上就是通过css,js,jq三个方式实现简易下拉菜单的写法,有更好的写法欢迎你的指教
一 、css实现
html代码部分<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>html+css下拉菜单</title> <link rel="stylesheet" type="text/css" href="css/style.css"/> </head> <body> <ul class="menu"> <li> <a href="#">首页</a> </li> <li> <a href="#">菜单一</a> <ul> <li>内容一</li> <li>内容一</li> <li>内容一</li> </ul> </li> <li> <a href="#">菜单二</a> <ul> <li>内容二</li> <li>内容二</li> <li>内容二</li> </ul> </li> <li> <a href="#">菜单三</a> <ul> <li>内容三</li> <li>内容三</li> <li>内容三</li> </ul> </li> <li> <a href="#">菜单四</a> </li> </ul> </body> </html>
css部分
*{ padding: 0; margin: 0; } a{ text-decoration: none; color: #000; } ul,li{ list-style: none; } .menu{ margin: 50px auto; width: 500px; height: 35px; background-color: #ccc; text-align: center; line-height: 35px; } .menu li{ float: left; width: 20%; position: relative; } .menu li:hover ul{ display: block; } .menu li a{ display: block; } .menu li a:hover{ background-color: burlywood; } .menu li ul{ display: none; position: absolute; } .menu li ul li{ width: 100%; margin-top: 2px; background-color: darkgray; } .menu li ul li:hover{ cursor: pointer; background-color: chartreuse; }
二、js实现
html和js部分(实现方法一)<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS下拉菜单</title> <link rel="stylesheet" type="text/css" href="css/style.css"/> </head> <body> <ul class="menu" id="menu"> <li> <a href="#">首页</a> </li> <li> <a href="#">菜单一</a> <ul> <li>内容一</li> <li>内容一</li> <li>内容一</li> </ul> </li> <li> <a href="#">菜单二</a> <ul class="show"> <li>内容二</li> <li>内容二</li> <li>内容二</li> </ul> </li> <li> <a href="#">菜单三</a> <ul class="hide"> <li>内容三</li> <li>内容三</li> <li>内容三</li> </ul> </li> <li> <a href="#">菜单四</a> </li> </ul> <script type="text/javascript"> window.onload = function(){ function $(id){ return typeof id == "string"?document.getElementById(id):id; } var menu_li = $("menu").getElementsByTagName("li"); for(var i = 0; i < menu_li.length; i++){ menu_li[i].onmouseover = function(){ var ss = this.getElementsByTagName("ul")[0]; if(ss != undefined){ ss.style.display = "block"; } } } for(var j = 0; j < menu_li.length; j++){ menu_li[j].onmouseout = function(){ var ssa = this.getElementsByTagName("ul")[0]; if(ssa != undefined){ ssa.style.display = "none"; } } } } </script> </body> </html>
html和js部分(实现方法二)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> * { padding: 0; margin: 0; } li { list-style: none; float: left; } #tabCon { clear: both; } #tabCon div { display: none; } #tabCon div.fdiv { display: block; } </style> </head> <body> <div id="tanContainer"> <div id="tab"> <ul> <li class="fli">标题一</li> <li>标题二</li> <li>标题三</li> <li>标题四</li> </ul> </div> <div id="tabCon"> <div class="fdiv">内容一</div> <div>内容二</div> <div>内容三</div> <div>内容四</div> </div> </div> </body> <script> function $(id){ return typeof id=="string"?document.getElementById(id):id; } var EventUtil = { addHandler: function(element, type, handler) { if(element.addEventListener) { element.addEventListener(type, handler, false); } else if(element.attachEvent) { element.attachEvent("on" + type + handler); } else { element["on" + type] = handler; } }, removeHandler: function(element, type, handler) { if(element.removeEventListener) { element.removeEventListener(type, handler, false); } else if(element.detachEvent) { element.detachEvent("on" + type + handler); } else { element["on" + type] = null; } } } var tabs = $("tab").getElementsByTagName("li"); var divs = $("tabCon").getElementsByTagName("div"); for(var i = 0; i < tabs.length; i++) { var set = function() { change(this); } EventUtil.addHandler(tabs[i], "click", set); //tabs[i].onclick=function(){change(this);} } function change(obj) { console.log(obj); for(var i = 0; i < tabs.length; i++) { if(tabs[i] == obj) {console.log(tabs[i]); // tabs[i].style.display = "block"; divs[i].style.display = "block"; } else { // tabs[i].style.display = "none"; divs[i].style.display = "none"; } } } </script> </html>
css部分
*{ padding: 0; margin: 0; } a{ text-decoration: none; color: #000; } ul,li{ list-style: none; } .menu{ margin: 50px auto; width: 500px; height: 35px; background-color: #ccc; text-align: center; line-height: 35px; } .menu li{ float: left; width: 20%; position: relative; } .menu li a{ display: block; } .menu li a:hover{ background-color: burlywood; } .menu li ul{ display: none; position: absolute; left: 0; } .menu li ul li{ width: 100%; margin-top: 2px; background-color: darkgray; } .menu li ul li:hover{ cursor: pointer; background-color: chartreuse; }
三、JQ实现
html和jq部分<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS下拉菜单</title> <link rel="stylesheet" type="text/css" href="css/style.css"/> </head> <body> <ul class="menu" id="menu"> <li> <a href="#">首页</a> </li> <li> <a href="#">菜单一</a> <ul> <li>内容一</li> <li>内容一</li> <li>内容一</li> </ul> </li> <li> <a href="#">菜单二</a> <ul class="show"> <li>内容二</li> <li>内容二</li> <li>内容二</li> </ul> </li> <li> <a href="#">菜单三</a> <ul class="hide"> <li>内容三</li> <li>内容三</li> <li>内容三</li> </ul> </li> <li> <a href="#">菜单四</a> </li> </ul> <script type="text/javascript" src="../../jq/jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(function(){ $(".menu li").hover(function(){ $(this).children("ul").show(); },function(){ $(this).children("ul").hide(); }); }); </script> </body> </html>
css部分
*{ padding: 0; margin: 0; } a{ text-decoration: none; color: #000; } ul,li{ list-style: none; } .menu{ margin: 50px auto; width: 500px; height: 35px; background-color: #ccc; text-align: center; line-height: 35px; } .menu li{ float: left; width: 20%; position: relative; } .menu li a{ display: block; } .menu li a:hover{ background-color: burlywood; } .menu li ul{ display: none; position: absolute; left: 0; } .menu li ul li{ width: 100%; margin-top: 2px; background-color: darkgray; } .menu li ul li:hover{ cursor: pointer; background-color: chartreuse; }
以上就是通过css,js,jq三个方式实现简易下拉菜单的写法,有更好的写法欢迎你的指教
相关文章推荐
- js,jq,css多方面实现简易下拉菜单功能
- js,jq,css多方面实现简易Tab切换
- html+css+js实现的简易下拉菜单
- JS+CSS实现非常棒的简约风格下拉菜单
- js+css实现的简单的下拉菜单。兼容性好。
- HTML+CSS+JavaScript实现简易下拉菜单
- js+CSS实现模拟华丽的select控件下拉菜单效果
- CSS+JS实现兼容性很好的无限级下拉菜单
- 下拉菜单的两种实现方式:CSS和JS
- JS+CSS实现简易的滑动门效果代码
- 用原生JS实现的一个导航下拉菜单,下拉菜单的宽度与浏览器视口的宽度一样(js+html+css)
- JS+CSS实现简易实用的滑动门菜单效果
- 无限级下拉菜单--CSS+JS实现兼容性很好的无限级下拉菜单
- html+css实现简易下拉菜单
- js+CSS实现模拟华丽的select控件下拉菜单效果
- 二级下拉菜单的三种实现方法——CSS 、JS、 jQuery
- js+CSS实现模拟华丽的select控件下拉菜单效果
- CSS+JS实现兼容性很好的无限级下拉菜单
- CSS:不用js实现的css下拉菜单特效
- js+css实现超简洁的二级下拉菜单效果代码