웹 프론트엔드 JS 튜토리얼 JS는 탐색 모음 호버 효과(계속)_javascript 기술을 구현합니다.

JS는 탐색 모음 호버 효과(계속)_javascript 기술을 구현합니다.

May 16, 2016 pm 05:21 PM
네비게이션 바 호버링

지난번 [JS-내비게이션 바 hover 구현]에서 네비게이션 바가 마우스로 올려진 페이지를 IE에서 실행하면 네비게이션 바가 계속 흔들리는 현상이 발생한다고 언급했습니다.

해결 방법은 다음과 같습니다.

내비게이션 바의 위치 지정 방식을 절대에서 고정으로 변경한 이유는 잘 모르겠습니다. 흔들리는 걸 멈췄어요. . -_-||

코드 복사 코드는 다음과 같습니다.

div.navigation{
너비: 800px;
높이: 40px;
여백: 4px 자동 0;
왼쪽: 0px; ;
}


이러한 이유로 JS도 이에 맞게 수정되어야 합니다.
고정 위치는 브라우저의 가시 영역을 기준으로 하기 때문에 네비게이션 바의 원래 위치를 변경해야 합니다.



코드 복사 코드는 다음과 같습니다. //내비게이션의 원래 위치를 기록합니다. 페이지의 bar
var naviga_offsetTop = 0; var naviga_offsetLeft = 0;

//IE7은 getElementsByClassName을 인식하지 못합니다. 호환성을 위해
함수 my_getElementsByClassName(class_name)을 사용자 정의하세요. >var el = [] ;
//모든 요소 가져오기
_el = document.getElementsByTagName('*')
//className으로 선택
for (var i=0; i<_el .length; i ) {
if (_el[i].className == class_name ) {
el[el.length] = _el[i]
}
}
el을 반환합니다. ;
}

//탐색 표시줄, 상단에 마우스를 올리세요
function naviga_stay_top(){
var a_navigation_bar = []
if(document.getElementsByClassName){//Chrome , FF
a_navigation_bar = document.getElementsByClassName("navigation");
} else {//IE
a_navigation_bar = my_getElementsByClassName("navigation")
var scrollTop = document.body .scrollTop || document .documentElement.scrollTop;

document.title = scrollTop;
//스크롤 거리가 원래 탐색 표시줄과 상단 사이의 거리보다 큰 경우
//직접 탐색 표시줄을 시각적 영역 상단으로 수정합니다.
if( scrollTop > naviga_offsetTop ){
a_navigation_bar[0].style.top = 0 "px"
} else {
//If 스크롤 거리가 원래 탐색 모음 상단 거리보다 작습니다. 탐색 모음 위치를 다시 계산하세요
a_navigation_bar[0].style.top = (naviga_offsetTop - scrollTop) "px"
}
}

//네비게이션 바에 4개의 탭과 클릭 이벤트를 제공합니다.
window.onload=function(){
var a_tabs = [];
if( document.getElementsByClassName ){//Chrome, FF
a_tabs = document.getElementsByClassName("tab"); 🎜>}else{ //IE
a_tabs = my_getElementsByClassName("tab");
}

var a_contents = []
if( document.getElementsByClassName ){//Chrome, FF
a_contents = document.getElementsByClassName("content");
}else{//IE
a_contents = my_getElementsByClassName("content")
}

//Get offsetLeft , 즉 탐색 표시줄과 왼쪽 테두리 사이의 거리
var a_main_div = [];
if( document.getElementsByClassName ){//Chrome, FF
a_main_div = document.getElementsByClassName("main" );
}else{ //IE
a_main_div = my_getElementsByClassName("main");
}
naviga_offsetLeft = a_main_div[0].offsetLeft

a_tabs[0] onclick=function() {
window.scrollTo(0, a_contents[2].offsetTop)
}
a_tabs[1].onclick=function(){
window.scrollTo(0, a_contents[3].offsetTop)
}
a_tabs[2].onclick=function(){
window.scrollTo(0, a_contents[4].offsetTop)
a_tabs[3].onclick=function(){
window.scrollTo(0, a_contents[5].offsetTop)
}

//내비게이션 바의 위치를 ​​맨 위로 가져옵니다. 페이지에서
var a_navigation_bar = []; if(document.getElementsByClassName){//Chrome, FF
a_navigation_bar = document.getElementsByClassName("navigation")
} else {//IE
a_navigation_bar = my_getElementsByClassName(" Navigation");
}
//offsetTop 가져오기
naviga_offsetTop = a_navigation_bar[0].offsetTop;
a_navigation_bar[0].style.left = naviga_offsetLeft "px ";

//스크롤 바와 마우스에 스크롤 이벤트 추가
if( window.attachEvent) //IE
{
window.attachEvent("onmousewheel", naviga_stay_top);
window.attachEvent("onscroll", naviga_stay_top);

document.attachEvent("onmousewheel", naviga_stay_top)
document.attachEvent("onscroll", naviga_stay_top)
} else { //Chrome ,FF
window.addEventListener("mousewheel", naviga_stay_top,false);
window.addEventListener("scroll", naviga_stay_top,false)

document.addEventListener("mousewheel" , naviga_stay_top,false)
document.addEventListener("scroll", naviga_stay_top,false)
}
}


이 질문에서는 CSS DIV 위치 지정(상대, 절대, 정적, 고정)의 차이점을 이해하는 것이 중요합니다.

relative,absolute,static,fixed

먼저 각 속성 값의 정의를 살펴보겠습니다.

1. static: 기본값. 위치 지정이 없으면 요소는 일반 흐름(상단, 하단, 왼쪽, 오른쪽 또는 Z-색인 선언 무시)으로 나타납니다.

2. 상대: 상대적으로 배치된 요소를 생성하고 상하, 좌, 우 설정을 통해 정상 위치를 기준으로 배치합니다. Z-index를 통해 계층적 분류가 가능합니다.

3. 절대: 절대 위치 지정 요소를 생성하고 정적 위치 지정이 아닌 첫 번째 상위 요소를 기준으로 위치를 지정합니다. 요소의 위치는 "left", "top", "right" 및 "bottom" 속성을 통해 지정됩니다. Z-index를 통해 계층적 분류가 가능합니다.

4. 수정됨: 절대 위치에 있는 요소를 생성하고 브라우저 창을 기준으로 위치를 지정합니다. 요소의 위치는 "left", "top", "right" 및 "bottom" 속성을 통해 지정됩니다. Z-index를 통해 계층적 분류가 가능합니다.

정적 및 고정의 위치 지정 방법은 이해하기 쉬우므로 여기서는 분석하지 않겠습니다. 흔히 사용되는 상대문과 절대문을 분석하면 다음과 같습니다.

1. 상대적으로 배치된 요소는 일반 텍스트 흐름에서 제거되지만 텍스트 흐름에서의 해당 위치는 여전히 존재합니다. 그림 1과 같이:

그림 1
노란색 배경의 레이어는 상대적인 위치에 있고 빨간색 테두리 영역은 일반 흐름에서의 위치입니다. 위쪽과 왼쪽을 통해 위치를 지정하면 회색 배경 레이어의 위치에서 정상 위치가 여전히 존재하는 것을 볼 수 있습니다.

2.절대. 절대값으로 배치된 레이어는 일반 텍스트 흐름과 분리되지만 상대값과의 차이점은 일반 흐름에서 해당 위치가 더 이상 존재하지 않는다는 것입니다. 그림 2와 같이

그림 2
보시다시피 노란색 배경 레이어를 절대값으로 위치 지정하면 회색 배경 레이어가 자동으로 채워집니다.

3. 상대와 절대의 주요 차이점:

우선 위에서 언급한 것처럼 정상 흐름에서의 위치가 존재하는지 여부입니다.

둘째, 상대 위치 레이어는 상위 요소의 위치에 관계없이 항상 가장 가까운 상위 요소를 기준으로 합니다. 그림 3과 같이:

그림 3
그림에서 빨간색 배경 레이어는 상대적인 위치에 있고 직접 상위 요소의 녹색 배경 레이어는 정적입니다. 기본적으로 위치합니다. 빨간색 배경 레이어의 위치는 녹색 배경 레이어를 기준으로 위쪽 및 왼쪽 20개 요소입니다. 그리고 빨간색 배경 레이어를 절대값으로 위치시키면 그림 4와 같은 상황이 됩니다.

그림 4
보시다시피 빨간색 배경 레이어는 여전히 top:20px; left: 20px를 정의하지만 상대 요소는 절대 또는 상대 위치 지정 모드를 사용하여 노란색 배경 레이어가 됩니다. 따라서 절대 위치에 있는 레이어는 항상 절대 또는 상대로 정의된 가장 가까운 상위 레이어를 기준으로 하며, 이 상위 레이어가 반드시 직접적인 상위 레이어일 필요는 없습니다. 상위 레이어에 절대 또는 상대가 정의되지 않은 경우 그림 5와 같이 본문을 기준으로 배치됩니다.

그림 5
상단을 제외하고, 왼쪽 및 오른쪽 하단 위치 지정 외에도 여백 속성 값의 정의도 위의 규칙을 따릅니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Douyin 상단의 탐색 표시줄을 조정하는 방법은 무엇입니까? 기타 탐색 모음 조정 옵션 Douyin 상단의 탐색 표시줄을 조정하는 방법은 무엇입니까? 기타 탐색 모음 조정 옵션 Mar 07, 2024 pm 02:50 PM

Douyin 인터페이스의 탐색 모음은 상단에 있으며 사용자가 다양한 기능과 콘텐츠에 빠르게 액세스할 수 있는 중요한 채널입니다. Douyin이 계속 업데이트됨에 따라 사용자는 개인 취향과 필요에 따라 탐색 모음을 사용자 정의하고 조정할 수 있기를 원할 수 있습니다. 1. Douyin 상단의 탐색 표시줄을 조정하는 방법은 무엇입니까? 일반적으로 Douyin의 상단 탐색 모음에는 일부 인기 채널이 표시되어 사용자가 관심 있는 콘텐츠를 빠르게 탐색하고 볼 수 있습니다. 상위 채널의 설정을 조정하려면 다음 단계를 따르세요. TikTok 앱을 열고 계정에 로그인하세요. 기본 인터페이스 위, 일반적으로 화면 중앙이나 상단에 있는 탐색 모음을 찾으세요. 채널 편집 인터페이스로 들어가려면 탐색 모음 위의 "+" 기호 또는 이와 유사한 버튼을 클릭하세요. 채널 편집 인터페이스에서는 인기 채널의 기본 목록을 볼 수 있습니다. 합격할 수 있어요

순수 CSS를 사용하여 그림자 효과가 있는 메뉴 탐색 모음을 구현하는 구현 단계 순수 CSS를 사용하여 그림자 효과가 있는 메뉴 탐색 모음을 구현하는 구현 단계 Oct 16, 2023 am 08:27 AM

순수 CSS를 사용하여 그림자 효과가 있는 메뉴 탐색 모음을 구현하는 단계에는 특정 코드 예제가 필요합니다. 웹 디자인에서 메뉴 탐색 모음은 매우 일반적인 요소입니다. 메뉴 탐색 모음에 그림자 효과를 추가하면 미적 측면도 향상될 뿐만 아니라 사용자 경험도 향상됩니다. 이 기사에서는 순수 CSS를 사용하여 그림자 효과가 있는 메뉴 탐색 모음을 구현하고 참조할 수 있는 특정 코드 예제를 제공합니다. 구현 단계는 다음과 같습니다. HTML 구조 생성 먼저 메뉴 탐색 모음을 수용할 기본 HTML 구조를 생성해야 합니다. ~에 의해

PHP를 사용하여 간단한 탐색 표시줄 및 URL 수집 기능을 개발하는 방법 PHP를 사용하여 간단한 탐색 표시줄 및 URL 수집 기능을 개발하는 방법 Sep 20, 2023 pm 03:14 PM

PHP를 사용하여 간단한 탐색 표시줄 및 웹사이트 수집 기능을 개발하는 방법 탐색 표시줄 및 웹사이트 수집 기능은 웹 개발에서 일반적이고 실용적인 기능 중 하나입니다. 이 기사에서는 PHP 언어를 사용하여 간단한 탐색 표시줄 및 URL 수집 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 탐색 모음 인터페이스 생성 먼저 탐색 모음 인터페이스를 생성해야 합니다. 탐색 표시줄에는 일반적으로 다른 페이지로 빠르게 이동할 수 있는 링크가 포함되어 있습니다. HTML과 CSS를 사용하여 이러한 링크를 디자인하고 정렬할 수 있습니다. 다음은 간단한 탐색 모음 인터페이스입니다.

개인화 된 Discuz 네비게이션 바는 포럼을 더욱 독특하게 만듭니다! 개인화 된 Discuz 네비게이션 바는 포럼을 더욱 독특하게 만듭니다! Mar 11, 2024 pm 01:45 PM

Discuz 포럼에서 내비게이션 바는 사용자가 웹사이트를 방문할 때 자주 접하게 되는 부분 중 하나입니다. 따라서 내비게이션 바를 사용자 정의하면 포럼에 고유한 개인화 스타일을 추가하고 사용자 경험을 향상시킬 수 있습니다. 다음으로 Discuz 포럼에서 탐색 모음을 개인화하는 방법을 소개하고 구체적인 코드 예제를 제공하겠습니다. 먼저 Discuz의 백엔드 관리 시스템에 로그인하고 "인터페이스" -> "탐색 설정" 페이지로 들어가야 합니다. 이 페이지에서는 탐색 모음에 대한 다양한 설정과 사용자 정의를 수행할 수 있습니다. 다음은 일부입니다.

순수 CSS를 사용하여 반응형 탐색 모음의 드롭다운 탭 메뉴 효과를 구현하는 단계 순수 CSS를 사용하여 반응형 탐색 모음의 드롭다운 탭 메뉴 효과를 구현하는 단계 Oct 28, 2023 am 09:58 AM

순수 CSS를 사용하여 반응형 탐색 모음의 드롭다운 탭 메뉴 효과를 구현하는 단계입니다. 탐색 모음은 웹 페이지의 일반적인 요소 중 하나이며, 드롭다운 탭 메뉴는 탐색 모음에서 자주 사용되는 효과입니다. 더 많은 탐색 옵션을 제공할 수 있습니다. 이 문서에서는 순수 CSS를 사용하여 반응형 탐색 모음 드롭다운 탭 메뉴 효과를 구현하는 방법을 소개합니다. 1단계: 기본 HTML 구조 구축 먼저 데모용 기본 HTML 구조를 구축하고 탐색 모음에 몇 가지 스타일을 추가해야 합니다. 아래는 간단한 HTML 구조입니다.

순수 CSS를 사용하여 메뉴 탐색 모음의 부동 효과를 구현하는 단계 순수 CSS를 사용하여 메뉴 탐색 모음의 부동 효과를 구현하는 단계 Oct 19, 2023 am 10:13 AM

순수 CSS를 사용하여 메뉴 탐색 모음의 플로팅 효과를 구현하는 단계 웹 디자인의 지속적인 발전으로 웹 사이트에 대한 사용자의 요구가 점점 더 높아지고 있습니다. 더 나은 사용자 경험을 제공하기 위해 정지 효과는 웹 사이트 디자인에 널리 사용되었습니다. 이 기사에서는 순수 CSS를 사용하여 메뉴 탐색 모음의 부동 효과를 구현하여 웹 사이트의 유용성과 미적 측면을 개선하는 방법을 소개합니다. 기본 메뉴 구조 만들기 먼저 HTML 문서에서 메뉴의 기본 구조를 만들어야 합니다. 다음은 간단한 예입니다. &lt;navclass=&q

웹 페이지 하단에 있는 고정 탐색 모음의 배경색 그라데이션 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까? 웹 페이지 하단에 있는 고정 탐색 모음의 배경색 그라데이션 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까? Oct 20, 2023 pm 07:36 PM

웹 페이지 하단에 있는 고정 탐색 모음의 배경색 그라데이션 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까? 현대 웹 디자인에서는 고정된 탐색 모음이 일반적인 레이아웃 방법이 되었습니다. 웹페이지 하단의 고정 네비게이션 바에 배경색 그라데이션 효과를 추가하고 싶다면 자바스크립트가 매우 적합한 선택입니다. 이 기사에서는 JavaScript를 사용하여 이러한 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1단계: HTML 구조 먼저 HTML을 생성해야 합니다.

Vue 컴포넌트 실습: 네비게이션 바 컴포넌트 개발 Vue 컴포넌트 실습: 네비게이션 바 컴포넌트 개발 Nov 24, 2023 am 08:29 AM

Vue 구성 요소 작동: 탐색 모음 구성 요소 개발 웹 애플리케이션의 규모가 커짐에 따라 탐색 모음은 중요한 구성 요소가 됩니다. 탐색 모음의 디자인과 구현은 사용자 경험과 전반적인 애플리케이션 기능에 영향을 미칠 수 있습니다. 이 기사에서는 Vue.js의 강력한 기능을 보여주고 실용적인 탐색 모음 구성 요소를 개발하여 몇 가지 모범 사례를 소개합니다. 개요 탐색 모음은 일반적인 웹 페이지 구성 요소로, 여러 페이지 간을 탐색하거나 다른 기능에 액세스하는 데 자주 사용됩니다. 좋은 내비게이션 바는 사용하기 쉽고, 아름답고, 가시성이 좋아야 합니다.

See all articles