순수한 CSS를 통해 웹페이지에 부드러운 스크롤 탐색 메뉴를 구현하는 방법
사용자가 웹페이지에서 탐색하도록 안내하는 것은 중요한 디자인 요소이며, 부드러운 스크롤 탐색 메뉴는 사용자에게 친숙한 탐색 메뉴를 제공하는 방법입니다. 내비게이션 경험. 이 기사에서는 순수 CSS를 통해 이러한 탐색 메뉴를 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다.
1. HTML 구조
먼저 HTML로 탐색 메뉴의 기본 구조를 만들어야 합니다. 다음은 간단한 예입니다.
<nav class="smooth-scroll-nav"> <ul class="smooth-scroll-menu"> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> <li><a href="#section4">Section 4</a></li> </ul> </nav> <section id="section1"> <h2 id="Section">Section 1</h2> <p>This is the content of section 1.</p> </section> <section id="section2"> <h2 id="Section">Section 2</h2> <p>This is the content of section 2.</p> </section> <section id="section3"> <h2 id="Section">Section 3</h2> <p>This is the content of section 3.</p> </section> <section id="section4"> <h2 id="Section">Section 4</h2> <p>This is the content of section 4.</p> </section>
위의 예에서는 탐색 메뉴의 컨테이너로 <nav></nav>
요소를 만든 다음 그 안에 <ul> 요소는 해당 메뉴 항목이 추가된 메뉴 목록 역할을 합니다. 다음으로 <code><section></section>
요소를 사용하여 각 섹션의 콘텐츠를 생성합니다. 여기서 id
속성은 href
속성과 동일합니다. 해당 메뉴 항목에서. <nav></nav>
元素作为导航菜单的容器,然后在其中添加了一个<ul></ul>
元素作为菜单的列表,并添加了对应的菜单项。接下来,我们使用<section></section>
元素来创建每个板块的内容,其中的id
属性与菜单项中的href
属性相对应。
二、CSS样式
接下来,我们将使用CSS来创建平滑滚动的效果。首先,我们需要在导航菜单上应用一些基本的样式:
.smooth-scroll-nav { position: fixed; top: 0; left: 0; width: 100%; background-color: #333; padding: 10px 0; } .smooth-scroll-menu { list-style: none; margin: 0; padding: 0; text-align: center; } .smooth-scroll-menu li { display: inline-block; margin-right: 15px; } .smooth-scroll-menu li:last-child { margin-right: 0; } .smooth-scroll-menu a { color: #fff; text-decoration: none; padding: 5px 10px; } .smooth-scroll-menu a:hover { background-color: #fff; color: #333; }
在上面的代码中,我们向导航菜单容器添加了position: fixed;
属性,使其固定在页面的顶部。然后,设置了相应的背景颜色、内边距和字体颜色等样式。接下来,我们使用inline-block
布局将菜单项水平显示,并添加了一些间距和悬停效果。
接下来,我们将添加一个平滑滚动的效果。我们将使用CSS的scroll-behavior
属性来实现这个效果。在某些情况下,浏览器可能不支持这个属性,所以我们还需要为不支持的浏览器提供一个回退方案。
html { scroll-behavior: smooth; } @media screen and (-webkit-min-device-pixel-ratio:0) { /* 回退方案:使用jQuery滚动动画 */ .smooth-scroll-nav a { transition: all 0.3s ease-in-out; } .smooth-scroll-nav a[href^="#"] { position: relative; } .smooth-scroll-nav a[href^="#"]:after { content: ""; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background-color: #fff; transition: all 0.3s ease-in-out; transform: translateX(-50%); } .smooth-scroll-nav a[href^="#"]:hover:after, .smooth-scroll-nav a[href^="#"]:focus:after { width: 100%; } }
在上面的代码中,我们首先使用scroll-behavior: smooth;
应用平滑滚动的效果。然后,我们使用@media
查询来为不支持scroll-behavior
属性的浏览器提供一个回退方案。
在回退方案中,我们为菜单项添加了一个过渡效果,使其在鼠标悬停时有一个下划线的效果。我们使用::after
伪元素来创建这个下划线,并使用过渡效果来实现动画。通过相应的transition
属性,我们实现了下划线的展开和收缩。
三、JavaScript附加功能
如果要在不支持scroll-behavior
属性的浏览器中实现平滑滚动的效果,我们还可以使用JavaScript来实现。以下是一个使用jQuery库的示例代码:
$(function() { $('a[href^="#"]').on('click', function(e) { e.preventDefault(); var target = $(this.getAttribute('href')); if (target.length) { $('html, body').stop().animate({ scrollTop: target.offset().top }, 1000); } }); });
在上面的代码中,我们使用了jQuery的animate
函数来实现平滑滚动的效果。当点击一个菜单项时,我们首先阻止了默认的的跳转行为,然后使用offset()
函数获取目标元素的位置,并通过animate
position:fixed;
속성을 추가하여 상단에 고정되도록 했습니다. 페이지의 . 그런 다음 해당 배경색, 패딩, 글꼴 색상 및 기타 스타일을 설정합니다. 다음으로 inline-block
레이아웃을 사용하여 메뉴 항목을 가로로 표시하고 간격과 호버 효과를 추가합니다. 🎜🎜다음으로 부드러운 스크롤 효과를 추가하겠습니다. 이 효과를 얻기 위해 CSS scroll-behavior
속성을 사용할 것입니다. 어떤 경우에는 브라우저가 이 속성을 지원하지 않을 수 있으므로 이를 지원하지 않는 브라우저에 대한 대체 솔루션도 제공해야 합니다. 🎜rrreee🎜위 코드에서는 먼저 scroll-behavior: smooth;
를 사용하여 부드러운 스크롤 효과를 적용했습니다. 그런 다음 @media
쿼리를 사용하여 scroll-behavior
속성을 지원하지 않는 브라우저에 대한 대체 기능을 제공합니다. 🎜🎜폴백 솔루션에서는 마우스를 올렸을 때 밑줄 효과가 나타나도록 메뉴 항목에 전환 효과를 추가했습니다. ::after
의사 요소를 사용하여 이 밑줄을 만들고 전환 효과를 사용하여 애니메이션을 적용합니다. 해당 transition
속성을 통해 밑줄의 확장 및 축소를 구현합니다. 🎜🎜3. JavaScript 추가 기능🎜🎜scroll-behavior
속성을 지원하지 않는 브라우저에서 부드러운 스크롤을 원할 경우 JavaScript를 사용하여 구현할 수도 있습니다. 다음은 jQuery 라이브러리를 사용한 샘플 코드입니다. 🎜rrreee🎜위 코드에서는 jQuery의 animate
기능을 사용하여 부드러운 스크롤 효과를 구현했습니다. 메뉴 항목을 클릭할 때 먼저 기본 점프 동작을 방지한 다음 offset()
함수를 사용하여 대상 요소의 위치를 획득하고 animate
를 통해 페이지를 구현합니다. > 스크롤 기능. 🎜🎜이로 순수 CSS 기반의 부드러운 스크롤 탐색 메뉴 구현이 완성되었습니다. 이 방법을 사용하면 웹 페이지에 대한 원활한 탐색 환경을 제공하고 CSS 스타일을 통해 전체 메뉴의 모양과 동작을 제어할 수 있습니다. 🎜위 내용은 순수 CSS를 통해 웹페이지에서 부드러운 스크롤 탐색 메뉴를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

예, YoushouldLearnbothflexBoxAndgrid.1) FlexBoxisIdealforone-Dimensional, FlexiblelayoutSlikenavigationMenus.2) GridexCelsIntwo-Dimensional, ComplexDesignsSuchasmagazinElayouts.3) 결합 된 BothenSlayoutFlexibility 및 HeartingFortructur

자신의 코드를 리팩터링하는 것은 어떤 모습입니까? John Rhea는 자신이 쓴 오래된 CSS 애니메이션을 선택하고 최적화하는 사고 과정을 살펴 봅니다.

cssanimationsarenherinly에 hardbutreepracticenderstandingofcsspropertiesandtimingflestions.1) startsimpleants withsimpleatslikeScalingabuttononHoverusingKeyframes.2) useAsingfuctionslikecubic-bezierfornateffects, 그러한 분위기, 3)

@keyframesispopularduetoitstativerstatility 및 powerincreatingsmoothcssanimations.keytricksinclude : 1) states 사이에 moothtransitionsbettites, 2) 애니메이션 multiplepropertiessimultory, 3) vendorPixesforBrowsercompatibility, 4) 빗질을 사용하여

csScounterSearedTomanageAutomaticNumberingInberingInwebDesigns.1) 1) theCanbeusedfortablestoffContents, ListItems 및 CustomNumbering.2) AdvancedUsesInSinestedNumberingsystems.3) CreativeUseNvolvecust를 CreativeSinvolecust.4) CreativeSinvolvecust

특히 모바일 장치에 스크롤 그림자를 사용하는 것은 Chris가 이전에 다룬 미묘한 UX입니다. Geoff는 애니메이션 타임 라인 속성을 사용하는 새로운 접근 방식을 다루었습니다. 또 다른 방법이 있습니다.

빠른 새로 고침을 통해 실행합시다. 이미지 맵은 html 3.2로 돌아가는데, 먼저 서버 측 맵과 클라이언트 측지 맵은 맵 및 영역 요소를 사용하여 이미지를 통해 클릭 가능한 영역을 정의했습니다.

Devs State Survey는 이제 참여에 개방되어 있으며, 이전 설문 조사와 달리 코드, 직장, 건강, 취미 등을 제외한 모든 것을 포함합니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

드림위버 CS6
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.