>  기사  >  웹 프론트엔드  >  JS 탐색 메뉴의 보조 드롭다운 메뉴를 구현하는 세 가지 방법

JS 탐색 메뉴의 보조 드롭다운 메뉴를 구현하는 세 가지 방법

高洛峰
高洛峰원래의
2016-12-08 13:18:591334검색

아래 사진과 같이 타오바오, 소후 등 대형 웹사이트에서 사용되는 일부 보조 드롭다운 메뉴를 볼 수 있습니다. 그렇다면 탐색 메뉴 표시줄에 보조 드롭다운 메뉴를 구현하는 방법은 무엇입니까? 아래 편집자는 구현 아이디어를 귀하와 공유할 것입니다.

JS 탐색 메뉴의 보조 드롭다운 메뉴를 구현하는 세 가지 방법


그런데 어떻게 비슷한 사진을 얻을 수 있을까요? 실제로 이를 달성하는 방법에는 최소한 세 가지가 있습니다. 아래에 참조용 코드를 첨부합니다.

html과 css만 사용하세요

<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding: 0;list-style: none;text-decoration: none;}
#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}
ul{background: #aaa}
ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}
ul li:hover{background: #cea;}
ul li ul li{float: none;}
/*关键一:将二级菜单设置为display:none;*/
ul li ul{position: absolute;top:40px;left: 0; display: none;}
ul li ul li:hover{background: red;}
/*关键二:在划过二级菜单从属的一级菜单时,设置为display:block;*/
ul li:hover ul{display: block;}
</style>
<div id="nav">
<ul>
<li><a href="">首页</a></li>
<li><a href="">汽车</a>
<ul>
<li><a href="#">奥迪</a> </li>
<li><a href="#">道奇</a> </li>
</ul>
</li>
<li><a href="">手机</a>
<ul>
<li><a href="#">小米</a> </li>
<li><a href="#">华为</a> </li>
</ul>
</li>
<li><a href="">联系我们</a></li>
</ul>
</div>

이 방법이 구조와 성능의 완전한 분리를 보장하므로 더 낫다는 것을 알 수 있습니다.

2. javasc를 사용하세요

<!DOCTYPE htm>
<html>
<head >
<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding: 0;list-style: none;text-decoration: none;}
#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}
ul{background: #aaa}
ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}
ul li:hover{background: #cea;}
ul li ul li{float: none;}
ul li ul{position: absolute;top:40px;left: 0; display:none;}
ul li ul li:hover{background: red;}
</style>
<div id="nav">
<ul>
<li><a href="#">首页</a></li>
<li onmouseover="show(this)" onmouseout="hide(this)"><a href="#">汽车</a>
<!-- 关键一:在二级标题从属的一级标题标签内设置时间执行程序,this代表的时这个li元素 -->
<ul>
<li><a href="#">奥迪</a> </li>
<li><a href="#">道奇</a> </li>
</ul>
</li>
<li onmouseover="show(this)" onmouseout="hide(this)"><a href="#">手机</a>
<ul>
<li><a href="#">小米</a> </li>
<li><a href="#">华为</a> </li>
</ul>
</li>
<li><a href="#">联系我们</a></li>
</ul>
</div> 
script>
function show(li){
var ul=li.getElementsByTagName("ul")[0];
// 关建二:在li这个对象内查询标签名为ul的标签,由于二级标签只有一个,所以索引为0即可。
ul.style.display="block";
// 关键三:当鼠标划过li时,其子元素ul标签的display为block
}
function hide(li){
var ul=li.getElementsByTagName("ul")[0];
ul.style.display="none";
// 关键四:当鼠标划出li时,其子元素ul的display为none
}
/script>

javascript를 사용하여 구현하는 것이 더 번거롭고 여기서는 구조와 동작이 분리되지 않습니다(단, JavaScript로 dom을 만들어 분리해 볼 수도 있습니다). 구조와 동작이 매우 번거롭지만 권장하지 않습니다.

3. jQuery를 사용하여 구현

jQuery는 javascript 라이브러리입니다. 최신 버전의 라이브러리 파일은 jQuery 공식 웹사이트에서 다운로드할 수 있습니다. 문서는 개발자가 쉽게 배우고 디버깅할 수 있습니다. 머신에 다운로드한 후 라이브러리 파일을 html로 참조해야 합니다. jQuery는 기본적으로 JavaScript이므로 참조 방법은 다음과 같습니다.

<script src="路径名称"></script>

jQuery 사용 보조 드롭다운 메뉴를 구현하는 코드는 다음과 같습니다.

확실히 jQuery를 사용하는 것은 매우 편리합니다.

<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding: 0;list-style: none;text-decoration: none;}
#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}
ul{background: #aaa}
ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}
ul li:hover{background: #cea;}
ul li ul li{float: none;}
ul li ul{position: absolute;top:40px;left: 0; display: none;}
ul li ul li:hover{background: red;}
</style>
<div id="nav">
<ul>
<li><a href="">首页</a></li>
<li class="navmenu"><a href="">汽车</a>
<ul>
<li><a href="#">奥迪</a> </li>
<li><a href="#">道奇</a> </li>
</ul>
</li>
<li class="navmenu"><a href="">手机</a>
<ul>
<li><a href="#">小米</a> </li>
<li><a href="#">华为</a> </li>
</ul>
</li>
<li><a href="">联系我们</a></li>
</ul>
</div> 
<!-- 关键一:引入jQuery库文件 -->
script type="text/javascript">
$(function(){
$(".navmenu").mouseover(function(){
$(this).children("ul").show();
})
})
// 关键二:正确使用jQuey的语法完成行为。
$(function(){
$(".navmenu").mouseout(function(){
$(this).children("ul").hide();
})
})
/script>
최종 구현 효과는 다음과 같습니다.

즉, 1차 메뉴 위로 마우스를 이동하면 해당 2차 메뉴가 실행됩니다. 나타나다. JS 탐색 메뉴의 보조 드롭다운 메뉴를 구현하는 세 가지 방법

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.