Html&JQuery 스크롤 따라다니는 메뉴
페이지 정보
작성자 디자인천일
작성일Date: 2025-03-26 21:45
조회view: 9
본문
메뉴 클릭시 해당 컨텐츠로 스크롤.
클릭한 컨텐츠에 해당하는 메뉴 활성화
css
#smp_content {position:relative;width:100%;max-width:980px;margin:0 auto;}
#smp_content:after {display:block;visibility:hidden;clear:both;content:""}
ul.tab_tit {display:block;width:100%;background:#fff;z-index:1;}
ul.tab_tit:after {display:block;visibility:hidden;clear:both;content:""}
ul.tab_tit li {display:block;float:left;width:33.33%;}
ul.tab_tit li a {display:block;color:#fff;line-height:60px;text-align:center;background:#111;}
ul.tab_tit li a.active {background:#37be00}
ul.tab_tit.sticky {position:sticky;top:80px;}
.smp_cont {padding:40px 20px;}
.smp_cont h3 {display:block;margin:0 0 20px 0;font-size:18px;font-weight:700;}
.smp_cont p {min-height:640px;}
html
<div id="smp_content">
<ul class="tab_tit">
<li><a href=".tab1" class="active">상품 설명</a></li>
<li><a href=".tab2">상품 리뷰</a></li>
<li><a href=".tab3">상품 정보</a></li>
</ul>
<div class="smp_cont tab1">
<h3>상품설명</h3>
<p>...</p>
</div>
<div class="smp_cont tab2">
<h3>상품리뷰</h3>
<p>...</p>
</div>
<div class="smp_cont tab3">
<h3>상품정보</h3>
<p>...</p>
</div>
</div>
jQuery/Javascript
$('.tab_tit a').click(function(event) {
var id = $(this).attr("href");
var offset = 110;
var target = $(id).offset().top - offset;
$('html, body').animate({
scrollTop: target
}, 500);
event.preventDefault();
});
/* scroll function */
$(window).scroll(function() {
var h = $('#smp_content').offset().top;
if ($(window).scrollTop() > h) {
$('.tab_tit').addClass('sticky');
} else {
$('.tab_tit').removeClass('sticky');
}
var currentTop = $(window).scrollTop();
var tab1_offset = $('.tab1').offset().top - 180;
var tab2_offset = $('.tab2').offset().top - 180;
var tab3_offset = $('.tab3').offset().top - 180;
$('.tab_tit a').removeClass('active');
if (currentTop >= 0 && currentTop < tab2_offset) {
$('.tab_tit a').eq(0).addClass('active');
} else if( currentTop >= tab2_offset && currentTop < tab3_offset ) {
$('.tab_tit a').eq(1).addClass('active');
} else if( currentTop >= tab3_offset ) {
$('.tab_tit a').eq(2).addClass('active');
}
});