웹 프론트엔드 JS 튜토리얼 범용 Infinitus 드롭다운 메뉴 구현 코드

범용 Infinitus 드롭다운 메뉴 구현 코드

May 05, 2018 pm 04:21 PM
드롭다운 메뉴 암호 성취하다

이 글은 주로 보편적인 Infinitus 드롭다운 메뉴의 구현 코드를 소개합니다. 이제 특정 참고 가치가 있습니다. 필요한 친구들이 참조할 수 있습니다.

드롭다운 메뉴는 제 개발에서 자주 접하게 됩니다. 하지만 아무도 없습니다. 모든 프로젝트는 처음부터 작성해야 합니다. 변경하기는 쉽지만 여전히 매우 귀찮습니다. 오늘은 이전 프로젝트 개발에서 메뉴를 정리하는 시간을 갖습니다. 범용 버전이므로 앞으로는 그렇게 번거로울 필요가 없습니다.

Features

오늘 컴파일한 메뉴는 jquery+css로 개발한 것으로 다음과 같은 특징이 있습니다.

1. 강력한 다양성

이전에 사용하던 드롭다운 메뉴에 문제가 있어서 꼭 필요했던 메뉴입니다. 예를 들어, 기본 탐색 메뉴와 하위 메뉴 설정을 분리하려면 두 번째 수준 메뉴는 class="first_menu"이고 세 번째 수준 메뉴는 class="second_menu"... 등입니다. 이러한 작성 방식의 한 가지 문제는 다음과 같습니다. 루프 출력을 수행하는 것은 프로그래머에게 도움이 되지 않으며 이 메뉴에는 CSS 스타일만 도입하면 되고, 다단계 메뉴를 정의할 필요가 없습니다.

2. 드롭다운 지침의 아름다운 자동 호출

과거에는 드롭다운 메뉴에 드롭다운 표시 클래스를 수동으로 추가했지만 이제는 드롭다운 스타일만 정의하면 됩니다. CSS의 다운 효과를 사용하면 코드가 자동으로 드롭다운 메뉴를 찾아 표시 화살표를 추가합니다.

3. 간단한 호출

프로그래머의 출력 목록은 간단하고 많은 판단이 필요하지 않습니다. 메뉴 데이터는 재귀적으로 호출됩니다.

Implementation

1. HTML 코드

먼저 메뉴 목록을 구성하기 위해 ul과 li로 구성된 메뉴 데이터를 페이지에 출력합니다. 구체적인 구조 코드는 다음과 같습니다.

<ul class="Menue">

 <li class="Menue_li"><a href="#">首页</a></li>

 <li class="Menue_li"><a href="#">菜单一</a>

  <ul class="sub_menu">

   <li><a href="#">过山车</a></li>

   <li><a href="#">火山爆发</a></li>

   <li><a href="#">小小鸟</a></li>

  </ul>

 </li>

 <li class="Menue_li"><a href="#">菜单二</a>

  <ul class="sub_menu">

   <li><a href="#">关于我们</a>

    <ul class="sub_menu">

     <li><a href="#">山高地缘</a>

      <ul class="sub_menu">

       <li><a href="#">飞鸽传书</a></li>

       <li><a href="#">生生世世</a></li>

       <li><a href="#">飞黄腾达</a></li>

      </ul>

     </li>

     <li><a href="#">数据库</a>

      <ul class="sub_menu">

       <li><a href="#">数据库表</a></li>

       <li><a href="#">数据加密</a></li>

       <li><a href="#">数据建模</a></li>

      </ul>

     </li>

     <li><a href="#">C摄像头</a></li>

    </ul>

   </li>

   <li><a href="#">测试产品</a></li>

  </ul>

 </li>

</ul>
로그인 후 복사

일부 기본 HTML 코드는 매우 간단합니다. 코드 구조를 강조할 필요는 없습니다. 세 번째 수준 또는 여러 수준 메뉴는 주로 중첩된 ul입니다. 스타일 시트의 이름도 매우 간단합니다. 하위 메뉴는 프로그램 코드의 루프 호출에 매우 도움이 되는 "sub_menu" 스타일입니다.

2. CSS 스타일

Css 스타일 코드도 매우 간단합니다.

a { text-decoration:none; }

ul, li { list-style:none; margin:0; padding:0; }

/*定义菜单*/

.Menue li { background:#111; color:#fff; height:30px; line-height:30px; position:relative; float:left; margin-right:5px; width:100px; text-align:center; font-family:Arial, Helvetica, sans-serif; }

.Menue li a { color:#fff; font-size:14px; display:block; }

/*下拉菜单样式*/

ul.sub_menu { position:absolute;width:100px; display:none; z-index:999; }

.Menue li ul.sub_menu li { background:none; color:#555; font-size:12px; border-bottom:1px #333 solid; position:relative; width:100px; height:30px; }

.Menue li ul.sub_menu li.last { border-bottom:none; } /*js会对最后一个li添加该class,去掉border-bottom效果*/

.Menue li ul.sub_menu li a { background:#222; color:#888; display:block;height:30px; }

.Menue li ul.sub_menu li a:hover, .Menue li ul.sub_menu li a.now { background:#f90;color:#fff;}

.Menue li.now,.Menue li.current { background:#f60;color:#fff;}

/*如果有下拉菜单添加的class*/

.hasmenu { background:url(arrow.png) no-repeat right; padding-right:15px;}/*主导航箭头向下*/

.Menue li a.hasmenu { background:url(arrow.png) no-repeat right; padding-right:15px;background-position:right -30px;}/*下拉菜单箭头向右*/

.Menue li ul.sub_menu li a.hasmenu { background:#222 url(arrow.png) no-repeat right top;}

.Menue li ul.sub_menu li a.hasmenu:hover { background:#f90 url(arrow.png) no-repeat right top; color:#fff;}
로그인 후 복사

여기서 두 가지 점만 강조합니다.

1. 상대 위치

절대: 절대 위치 지정, CSS 작성 방법 "위치: 절대;", 위치 지정은 다음과 같이 두 가지 상황으로 구분됩니다.

A 위쪽, 오른쪽, 아래쪽, 왼쪽이 설정되지 않은 경우 기본값입니다. 부모의 "콘텐츠 영역"을 기준으로 "원점"이 원점입니다.

B. Top, Right, Bottom, Left가 설정된 경우는 다음과 같은 2가지 경우가 있습니다.

 (1) 부모에는 위치 속성이 없고 브라우저의 왼쪽 상단에 있습니다. )는 "원래 좌표"를 클릭하여 위치를 정하며, Top, Right, Bottom, Left 속성에 따라 위치가 결정됩니다.

(2) 부모는 위치 속성을 가지며, 부모의 "좌표의 원점"이 원점입니다.

상대: 상대 위치 지정, CSS 작성 방법 "위치: 상대;", 부모의 "콘텐츠 영역의 원점"을 원점으로 참조하고, 부모가 없는 경우 "콘텐츠 영역의 원점"을 사용합니다. Body의 원점을 기준으로 Top, Right, Bottom, Left 속성에 따라 위치가 결정되며 "높이 확장 또는 점유" 기능을 가지고 있습니다.

위의 두 가지 차이점은 매우 중요하며 매우 일반적인 기술이므로 구별해야 합니다. 이 두 가지 속성 때문에 개발 중에 문제를 찾는 데 많은 시간을 낭비했습니다.

2. 배경 위치 사용

때때로 웹 사이트 속도를 향상하고 웹 사이트 관리를 용이하게 하기 위해 일반적으로 사용되는 작은 그림을 큰 그림에 배치하는 경우가 많습니다. 이 방법은 CSS에 해당하는 작은 그림이 필요할 때 사용할 수 있습니다. 구현은 의미를 이해하는 한 매우 편리합니다. 이 방법의 명확한 점은 이미지 차단 기능입니다.

구문:

배경 위치: 길이 || 길이

배경 위치: 위치

값:

길이 : 백분율 | 부동 소수점 숫자와 단위 식별자로 구성된 길이 값입니다.

위치 :위 | 가운데 | 아래 | 왼쪽 | 오른쪽

설명:
객체의 배경 이미지 위치를 설정하거나 검색합니다. background-image 속성을 먼저 지정해야 합니다. 이 속성 위치 지정은 개체의 패딩 설정에 영향을 받지 않습니다. 기본값은 0% 0%입니다. 이때, 배경 이미지는 패딩을 제외한 객체의 콘텐츠 영역 중 좌측 상단에 위치하게 됩니다. 하나의 값만 지정하면 해당 값이 가로좌표에 사용됩니다. 세로좌표는 기본적으로 50%로 설정됩니다. 두 개의 값을 지정하면 두 번째 값이 세로좌표로 사용됩니다. 설정값이 오른쪽 중앙이면 오른쪽 가로좌표 값이 중앙값보다 우선하므로 배경 이미지가 오른쪽에 위치하게 됩니다. 다음은 몇 가지 방정식입니다.

왼쪽 상단, 왼쪽 상단은 0% 0%에 해당합니다.

상단, 상단 중앙, 중앙 상단은 50% 0%에 해당합니다.

오른쪽 상단, 오른쪽 상단은 100% 0%에 해당합니다. .

왼쪽, 왼쪽 중앙, 중앙 왼쪽은 0% 50%에 해당합니다.

중앙, 중앙 중앙은 50% 50%에 해당합니다.

오른쪽, 오른쪽 중앙, 중앙 오른쪽은 100% 50%에 해당합니다.

왼쪽하단, 왼쪽하단은 0% 100%에 해당합니다.

하단, 하단 중앙, 중앙하단은 50% 100%에 해당합니다.

bottom right, right bottom 等价于 100% 100%

三、JS代码

本菜单是以jquery为基础的所以首先必须引入jquery代码库,然后编写如下JS代码实现下拉菜单。

<script src="js/jquery.min.js"></script>

<script>

$(document).ready(function(){

 //为导航设置默认高亮 与本菜单无关

 $("ul.Menue li.Menue_li:eq(0)").addClass("current")

 /*jquery menu 开始*/

 //为子菜单的最后一个li添加样式,适合为li添加下划线时去除最后一个的下划线

 $(".sub_menu").find("li:last-child").addClass("last")

 //遍历全部li,判断是否包含子菜单,如果包含则为其添加箭头指示状态

 $(".Menue li").each(function(){

 if($(this).find("ul").length!=0){$(this).find("a:first").addClass("hasmenu")}

 })

 

 //

 $(".Menue li").hover(function(){

 $(this).addClass("now");

 var menu = $(this);

  menu.find("ul.sub_menu:first").show();

 },function(){

 $(this).removeClass("now");

 $(this).find("ul.sub_menu:first").hide();

 });

 

 var submenu = $(".sub_menu").find(".sub_menu")

 submenu.css({left:"100px",top:"0px"})

 $(".sub_menu li").hover(function(){

 $(this).find("a:first").addClass("now")

 $(this).find("ul:first").show();

 },function(){

 $(this).find("a:first").removeClass("now")

 $(this).find("ul:first").hide()

 });

/*jquery menu 结束*/

})

</script>
로그인 후 복사

通过以上步骤就实现了一个通用的多级菜单,上面代码是本人日常开发中的积累,由于本人水平有限可能存在着许多错误希望同僚们批评指正或提出更优化的代码供本人参考,谢谢。

위 내용은 범용 Infinitus 드롭다운 메뉴 구현 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WPS 테이블에 드롭다운 메뉴를 만드는 방법 WPS 테이블에 드롭다운 메뉴를 만드는 방법 Mar 21, 2024 pm 01:31 PM

WPS 테이블 드롭다운 메뉴 만드는 방법: 드롭다운 메뉴를 설정하려는 셀을 선택한 후 "데이터", "유효성"을 차례로 클릭한 후 팝업 대화 상자에서 해당 설정을 지정합니다. 메뉴를 아래로 내리세요. 강력한 사무용 소프트웨어인 WPS는 문서, 통계 데이터 표 등을 편집하는 기능을 갖추고 있어 텍스트, 데이터 등을 처리해야 하는 많은 사람들에게 많은 편의를 제공합니다. WPS 소프트웨어를 능숙하게 사용하여 많은 편의를 제공하려면 WPS 소프트웨어의 다양한 기본 작동을 마스터할 수 있어야 합니다. 이 기사에서는 편집자가 WPS 소프트웨어 사용 방법을 공유합니다. 나타나는 WPS 표에서 아래 메뉴 작업을 수행합니다. WPS 양식을 연 후 먼저

블루 스크린 코드 0x0000001이 발생하는 경우 대처 방법 블루 스크린 코드 0x0000001이 발생하는 경우 대처 방법 Feb 23, 2024 am 08:09 AM

블루 스크린 코드 0x0000001로 수행할 작업 블루 스크린 오류는 컴퓨터 시스템이나 하드웨어에 문제가 있을 때 나타나는 경고 메커니즘입니다. 코드 0x0000001은 일반적으로 하드웨어 또는 드라이버 오류를 나타냅니다. 사용자가 컴퓨터를 사용하는 동안 갑자기 블루 스크린 오류가 발생하면 당황하고 당황할 수 있습니다. 다행히도 대부분의 블루 스크린 오류는 몇 가지 간단한 단계를 통해 문제를 해결하고 처리할 수 있습니다. 이 기사에서는 독자들에게 블루 스크린 오류 코드 0x0000001을 해결하는 몇 가지 방법을 소개합니다. 먼저, 블루 스크린 오류가 발생하면 다시 시작해 보세요.

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Mar 24, 2024 am 11:27 AM

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? 소셜 미디어의 등장으로 WeChat은 사람들의 일상 생활에 없어서는 안될 커뮤니케이션 도구 중 하나가 되었습니다. 그러나 많은 사람들이 동일한 휴대폰에서 동시에 여러 WeChat 계정에 로그인하는 문제에 직면할 수 있습니다. Huawei 휴대폰 사용자의 경우 듀얼 WeChat 로그인을 달성하는 것은 어렵지 않습니다. 이 기사에서는 Huawei 휴대폰에서 듀얼 WeChat 로그인을 달성하는 방법을 소개합니다. 우선, 화웨이 휴대폰과 함께 제공되는 EMUI 시스템은 듀얼 애플리케이션 열기라는 매우 편리한 기능을 제공합니다. 앱 듀얼 오픈 기능을 통해 사용자는 동시에

모든 장치에서 GE 범용 원격 코드 프로그램 모든 장치에서 GE 범용 원격 코드 프로그램 Mar 02, 2024 pm 01:58 PM

장치를 원격으로 프로그래밍해야 하는 경우 이 문서가 도움이 될 것입니다. 우리는 모든 장치 프로그래밍을 위한 최고의 GE 범용 원격 코드를 공유할 것입니다. GE 리모콘이란 무엇입니까? GEUniversalRemote는 스마트 TV, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, 스트리밍 미디어 플레이어 등과 같은 여러 장치를 제어하는 ​​데 사용할 수 있는 리모컨입니다. GEUniversal 리모컨은 다양한 기능과 기능을 갖춘 다양한 모델로 제공됩니다. GEUniversalRemote는 최대 4개의 장치를 제어할 수 있습니다. 모든 장치에서 프로그래밍할 수 있는 최고의 범용 원격 코드 GE 리모컨에는 다양한 장치에서 작동할 수 있는 코드 세트가 함께 제공됩니다. 당신은 할 수있다

PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 Mar 20, 2024 pm 04:54 PM

프로그래밍 언어 PHP는 다양한 프로그래밍 논리와 알고리즘을 지원할 수 있는 강력한 웹 개발 도구입니다. 그중 피보나치 수열을 구현하는 것은 일반적이고 고전적인 프로그래밍 문제입니다. 이 기사에서는 PHP 프로그래밍 언어를 사용하여 피보나치 수열을 구현하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 피보나치 수열은 다음과 같이 정의되는 수학적 수열입니다. 수열의 첫 번째와 두 번째 요소는 1이고 세 번째 요소부터 시작하여 각 요소의 값은 이전 두 요소의 합과 같습니다. 시퀀스의 처음 몇 가지 요소

Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 Mar 24, 2024 pm 06:03 PM

Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 소셜 소프트웨어의 인기와 개인 정보 보호 및 보안에 대한 사람들의 강조가 높아지면서 WeChat 복제 기능이 점차 주목을 받고 있습니다. WeChat 복제 기능을 사용하면 사용자가 동일한 휴대폰에서 여러 WeChat 계정에 동시에 로그인할 수 있으므로 관리 및 사용이 더 쉬워집니다. Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 것은 어렵지 않습니다. 다음 단계만 따르면 됩니다. 1단계: 휴대폰 시스템 버전과 WeChat 버전이 요구 사항을 충족하는지 확인하십시오. 먼저 Huawei 휴대폰 시스템 버전과 WeChat 앱이 최신 버전으로 업데이트되었는지 확인하세요.

Copilot을 사용하여 코드를 생성하는 방법 Copilot을 사용하여 코드를 생성하는 방법 Mar 23, 2024 am 10:41 AM

프로그래머로서 저는 코딩 경험을 단순화하는 도구에 흥미를 느낍니다. 인공 지능 도구의 도움으로 데모 코드를 생성하고 요구 사항에 따라 필요한 수정 작업을 수행할 수 있습니다. Visual Studio Code에 새로 도입된 Copilot 도구를 사용하면 자연어 채팅 상호 작용을 통해 AI 생성 코드를 만들 수 있습니다. 기능을 설명함으로써 기존 코드의 의미를 더 잘 이해할 수 있습니다. Copilot을 사용하여 코드를 생성하는 방법은 무엇입니까? 시작하려면 먼저 최신 PowerPlatformTools 확장을 가져와야 합니다. 이를 위해서는 확장 페이지로 이동하여 "PowerPlatformTool"을 검색하고 설치 버튼을 클릭해야 합니다.

Golang이 어떻게 게임 개발 가능성을 가능하게 하는지 마스터하세요 Golang이 어떻게 게임 개발 가능성을 가능하게 하는지 마스터하세요 Mar 16, 2024 pm 12:57 PM

오늘날의 소프트웨어 개발 분야에서 효율적이고 간결하며 동시성이 뛰어난 프로그래밍 언어인 Golang(Go 언어)은 점점 더 개발자들의 선호를 받고 있습니다. 풍부한 표준 라이브러리와 효율적인 동시성 기능으로 인해 게임 개발 분야에서 주목받는 선택이 되었습니다. 이 기사에서는 게임 개발에 Golang을 사용하는 방법을 살펴보고 특정 코드 예제를 통해 Golang의 강력한 가능성을 보여줍니다. 1. 게임 개발에서 Golang의 장점 Golang은 정적인 유형의 언어로서 대규모 게임 시스템을 구축하는 데 사용됩니다.

See all articles