echo "" 로 묶인 코드에 작은따옴표가 있는 경우 이스케이프해야 합니다. 물론 괄호 없이 각 항목 앞에 백슬래시(\")를 넣습니다.
일반적으로 결과는 밝혀졌습니다. 이것을 주제에 구체적으로 어떻게 첨부할지 스스로 결정해야 합니다. 시간이 있을 때 "두뇌를 터뜨리는" 것도 재미있습니다. 감사합니다.
행운을 빕니다! 블로그 사이트 페이지에서 곧 뵙겠습니다.
당신은 관심이 있을 수도 있습니다
WebPoint PRO는 광범위한 기능과 유능한 기술 검색 엔진 최적화를 갖춘 반응형 WordPress 테마입니다.
Share42 - 소셜 네트워킹 버튼과 북마크를 사이트에 추가하기 위한 스크립트(플로팅 패널 옵션이 있음)
웹 사이트를 만들 때 사이트의 기본 탐색 기능이 포함된 가로 메뉴를 계속 확인해야 하는 경우가 종종 있습니다. 수평 메뉴를 "고정"하는 방법은 휠을 아무리 아래로 돌리거나 위로 돌려도 "항상 탐색 기능을 가지고 있는" 방문자의 관점에서 편리합니다.
CSS로 가로 메뉴 수정: position:fixed 한편으로는 CSS를 사용하면 모든 것이 간단하고 쉽게 해결됩니다. 고정 수평 메뉴의 HTML 레이아웃 예:
[페이지 콘텐츠] [사이트 바닥글]고정 가로 메뉴의 CSS 레이아웃:
# 메뉴 상단 거의 고정됨( 위치: 고정; 상단: 10px; 왼쪽: 0; 높이: 30px; 너비: 100%; 여백: 0; )
이제 페이지 콘텐츠의 들여쓰기를 메뉴 높이와 동일하게 설정해 보겠습니다.
#content( 여백 상단: 30px; )
그리고 이제 우리는 "거의" 성공했습니다. 메뉴는 항상 방문자에게 표시됩니다. 하지만 디자인에 사이트 헤더가 있고 메뉴 자체가 있고 헤더에 로고, 사이트 모토 및 배너가 있으면 어떻게 해야 합니까?
글쎄, 콘텐츠 들여쓰기를 헤더와 메뉴 높이와 동일하게 만들고 그 사이의 들여쓰기를 만들어 사이트 헤더를 수정할 수 있습니다. 그러나 문제가 발생합니다. 우리는 방문자가 페이지 콘텐츠를 볼 수 있는 보기 공간을 크게 제한합니다. 캡을 버리는 옵션은 우리에게 전혀 적합하지 않습니다.
자바스크립트를 사용하여 가로 메뉴 수정 따라서 메뉴가 사이트 헤더 뒤로 "가지만" 방문자가 적극적으로 아래로 스크롤하면 메뉴가 상단에 "고정"되어 그대로 유지되는 옵션을 고려해 보겠습니다. 사이트 헤더가 표시되지 않습니다. 방문자가 페이지 헤더로 돌아오면 메뉴는 "사이트 헤더 뒤"의 위치에 "됩니다". 우선, 예제 페이지 레이아웃의 전체 HTML 레이아웃은 다음과 같습니다.
웹사이트 로고 웹사이트 슬로건 배너
[페이지 콘텐츠] [사이트 바닥글]당사의 웹사이트 템플릿은 다음과 같은 몇 가지 일반적인 영역으로 구성됩니다.
- 사이트 헤더 – #머리글, 높이 150px
- 가로 메뉴 – #menu-top-거의 고정됨– 높이 30px,
- 페이지의 주요 정보 영역 – #콘텐츠,
- 사이트 바닥글 - #보행인.
CSS 레이아웃은 다음과 같습니다.
#menu-top-almost-fixed( 위치: 고정; 여백: 0; 왼쪽: 0; 위쪽: 150px; 높이: 30px; ) #header( 디스플레이: 블록; 높이: 150px; 오버플로: 숨김; 위치: 상대; 여백 -하단: 55px; ) #menu-top-거의 고정된 ul, #menu-top-거의 고정된 li( 목록 스타일: 없음; 여백: 0; 패딩: 0; ) #menu-top-거의 고정된 ul ( 디스플레이: 블록; 텍스트 정렬: 중앙; 너비: 100%; 부동: 왼쪽; ) #menu-top-almost-fixed ul li( 디스플레이: 인라인; 줄 높이: 30px; 너비: 120px; 패딩: 0 5px ; 텍스트 정렬: 가운데; )
먼저, 헤더부터 콘텐츠까지 메뉴 높이와 동일한 들여쓰기 + 미학적 아름다움을 위한 여백이 있는 작은 들여쓰기를 설정해 보겠습니다. #header ( 여백-하단: 55px; ) . 헤더 바로 뒤에 있는 메뉴를 수정해 보겠습니다. #menu-top-almost-fixed( position:fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
이제 스크롤할 때 메뉴가 페이지 상단에 정확히 "고정"되는지 확인해 보겠습니다. 와 사이에 다음 자바스크립트를 넣어보겠습니다.
자바스크립트:
var m1 = 150; /* 헤더 높이(픽셀 단위) */ var m2 = 2; /* 스크롤하는 동안 헤더가 더 이상 표시되지 않을 때 들여쓰기 */ var menuID = "menu-top-almost-fixed"; /* 고정할 가로 메뉴의 ID */ var menuOpacityOnChange = "0.7"; /* 스크롤 시 메뉴 투명도: 1 - 불투명, 0.5 - 반투명 0.0 - 완전 투명 */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* 문서 상단부터 스크롤 스크롤러의 현재 위치까지의 들여쓰기를 브라우저 간 결정하기 위한 함수 */ function getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Netscape 호환 scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM 호환 scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* 플로팅에 대한 상단 패딩을 설정하는 함수 스크롤러 위치 및 가시성 헤더에 따라 수평 메뉴 고정 */ function marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefine" && s)( if (top +m2< m1) {
s.style.top = (m1-top) + "px";
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.opacity = "1";
} else {
s.style.top = m2 + "px";
s.style.opacity = menuOpacityOnChange;
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
marginMenuTop();
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
이 링크를 따르고 스크롤 휠을 사용하여 구현 예를 볼 수 있습니다. 여기에서는 모든 것이 간단합니다. 설정에서 다음 매개변수를 스크립트에 전달합니다.
- var m1 = 150; - 헤더 높이(픽셀),
- var m2 = 2; - 스크롤하는 동안 헤더가 더 이상 표시되지 않을 때 들여쓰기,
- var menuID = “메뉴 상단이 거의 고정됨”; - 고정할 가로 메뉴의 ID,
- var menuOpacityOnChange = “0.7”; - 스크롤 시 메뉴 투명도:
- 1 - 불투명
- 0.5 – 반투명
- 0.0 - 완전히 투명함
이 버전에서는 메뉴를 약간 "조정"하고 스크롤할 때 메뉴에 반투명도를 추가했습니다. 메뉴의 투명도를 변경하지 않고 메뉴 색상과 낮은 반투명 테두리가 있는 배경 형태로 메뉴 배경을 만들면 보다 고전적인 옵션이 즉시 제안됩니다(그라디언트가 부드럽게 "전환"됨). ” 불투명한 색상에서 투명한 색상으로):
수평 고정 메뉴의 CSS 레이아웃을 약간 변경해 보겠습니다.
#menu-top-almost-fixed( 위치: 고정; 여백: 0; 왼쪽: 0; 위쪽: 150px; 높이: 30px; 배경: url(./images/white-gradient-l.png) 왼쪽 하단 반복-x ; )
이제 와 사이에 배치할 수정된 자바스크립트 코드를 제공하겠습니다.
자바스크립트:
var m1 = 150; /* 헤더 높이(픽셀) */ var m2 = 0; /* 스크롤하는 동안 헤더가 더 이상 표시되지 않을 때 들여쓰기 */ var menuID = "menu-top-almost-fixed"; /* 문서 상단부터 스크롤 스크롤러의 현재 위치까지의 들여쓰기를 브라우저 간 결정하기 위한 함수 */ function getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Netscape 호환 scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM 호환 scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* 플로팅에 대한 상단 패딩을 설정하는 함수 스크롤러 위치 및 가시성 헤더에 따라 수평 메뉴 고정 */ function marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefine" && s)( if (top +m2< m1) {
s.style.top = (m1-top) + "px";
} else {
s.style.top = m2 + "px";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
여기에서는 모든 것이 간단합니다. 설정에서 다음 매개변수를 스크립트에 전달합니다.
- var m1 = 150; - 헤더 높이(픽셀),
- var m2 = 0; - 스크롤하는 동안 헤더가 더 이상 표시되지 않을 때 들여쓰기합니다.
메뉴는 제대로 작동하지만 페이지를 다시 로드하면 메뉴에 첫 번째 들여쓰기가 나타납니다. 이러한 문제가 있는 경우 해당 페이지를 1회 로딩한 후 메뉴를 호출하셔야 합니다. 이렇게 하려면 함수 호출 코드를 다음과 같이 변경하세요.
함수 setMenuPosition())( if(typeof window.addEventListener != "정의되지 않음")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "정의되지 않음")( window.attachEvent ( "onscroll", marginMenuTop); ) );
다음 코드로:
함수 setMenuPosition())( if(typeof window.addEventListener != "정의되지 않음")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "정의되지 않음")( window.attachEvent ( "onscroll", marginMenuTop); ) marginMenuTop(); );
페이지가 로드된 후 페이지의 메뉴 위치를 확인하고 원하는 스타일을 적용하는 marginMenuTop 함수를 즉시 호출합니다.
Twitter Bootstrap의 Afixx jQuery 플러그인을 사용하여 부분적으로 수정된 메뉴 구현 이 주제에 이어서 Twitter Bootstrap 프레임워크의 jQuery Affix 플러그인을 사용하여 거의 고정된 메뉴를 구현하는 방법에 대한 기사가 작성되었습니다.
최근에는 페이지를 스크롤할 때 메뉴가 고정되는 것이 유행이 되었습니다. 일반적으로 이는 랜딩 페이지 사이트의 가로 메뉴입니다.
작동 방식은 페이지가 로드될 때 메뉴가 페이지의 특정 위치(예: “헤더” 아래)에 위치하며, 페이지를 스크롤하면 브라우저 창 상단에 고정되어 다른 콘텐츠처럼 스크롤되지 않습니다.
방문자가 페이지를 위로 스크롤하여 페이지 시작 부분에 도달하면 메뉴가 원래 위치로 돌아갑니다. 따라서 방문자는 페이지의 어느 위치에 있든 이를 사용하고 사이트의 다른 페이지로 이동할 수 있습니다. 이는 매우 편리하며 사용성 원칙을 준수합니다.
이제 전문가의 도움을 받지 않고 최소한의 시간을 들여 이러한 메뉴를 구현하는 방법을 알려 드리겠습니다.
먼저 사이트에 대한 jQuery 라이브러리를 연결해야 합니다.
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
로컬로 연결하거나 Google을 통해 연결할 수 있습니다.
로컬로 연결하려면 공식 웹사이트 http://jquery.com/에서 jQuery 파일을 다운로드해야 합니다.
CSS
자바스크립트
스크립트에서는 상단 메뉴와 함께 헤더 높이와 블록 들여쓰기 값을 저장하는 변수 2개를 생성합니다. (이 경우와 같이) 들여쓰기가 없을 수 있습니다. 그런 다음 창 개체의 onScroll 이벤트에 대한 핸들러를 작성합니다. 여기서는 scrollTop() 메서드를 사용하여 페이지 상단에서 스크롤 스크롤러의 현재 위치까지의 거리를 계산합니다. 계산에 따라 메뉴를 사용하여 블록을 배치합니다.
그게 전부입니다. 간단한 솔루션 덕분에 사이트의 주요 부분을 스크롤할 때 스크롤되지 않는 아름다운 고정 메뉴를 얻을 수 있습니다.
가장 먼저 할 일은 사이트에서 메뉴를 보려는 위치에 HTML 코드를 붙여넣는 것입니다.
메뉴에는 기본 클래스가 할당됩니다. 덕분에 jquery는 이 특정 블록을 맨 위에 고정해야 하는지 결정할 수 있습니다.
2. jQuery 코드 헤더에서 닫는 헤더 앞에 코드를 삽입하세요. 위에서 쓴 것처럼 default 클래스를 사용하여 블록을 정의하고 스크롤한 후 고정 클래스를 할당합니다. 필요한 경우 클래스 이름을 변경할 수 있습니다. 하지만 조심하고 아무것도 놓치지 마세요. 그렇지 않으면 모든 것이 작동을 멈출 것입니다. jQuery, HTML, CSS를 변경해야 합니다.
$(document).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ menu.hasClass("default"))( $menu.fadeOut("fast",function())( $(this).removeClass("default") .addClass("fixed transbg") .fadeIn("fast") ; )) ; ) else if($(this).scrollTop()