coding/web

jquery 메뉴바 스크롤 내렸을때 스타일변경

100a 2020. 4. 3. 08:41

 

 

이번에는 스크롤 바를 내렸을때 메뉴바의 스타일이

변하는 코드를 작성해 보았습니다.

아래의 그림과 같이 스크롤을 내렸을때

메뉴바의 높이, 로고의 크기 메뉴의 폰트크기가 부드럽게 변경됩니다.

 

클릭해서 확인해주세요

 

아래는 CSS 코드입니다.

스크롤이 내려갔을때 .active 클래스를 addClass 해줍니다.

그렇기 때문에 변경되는 스타일은 .active를 포함하고 스타일을 지정해줍니다.

 

body,html{
    margin:0;padding:0;
    font-family:'Montserrat',sans-serif;
}
.container{
    width:100%;
    height:1500px;
    background-image:url('bg.png');
}
#header{
    position:fixed;
    width:100%;
    box-sizing: border-box;
    background:#e1e1e1;
    transition:.5s;
}
#header nav{
    top:0; left:0;
    width:100%; max-width:1460px;
    margin:0 auto; 
}


#header nav .logo{ float:left;padding:30px 0;}
#header nav .logo img{height:22px;}
#header nav ul{ float:right; margin:0;padding:30px 0;}
#header nav ul li{ float:left; display:block; list-style: none;}
#header nav ul li a{ padding:0 15px; line-height: 22px; text-decoration: none; color: #262626; font-size:16px;}
#header nav ul li:hover a{text-decoration: underline;}

#header nav ul li a, #header nav .logo img{transition:.5s;}

/* 스크롤 내렸을때 CSS .active */
#header.active{
    background:rgba(0,0,0,.8);
}
#header.active nav .logo ,#header.active nav ul{padding:20px 0; transition:.5s;}
#header.active nav ul li a{color:#fff;font-size:14px;}
#header.active  nav .logo img{height:18px;}

 

 

아래는 HTML + jquery 코드입니다.

jquery 링크 꼭 포함 시켜주셔야합니다.

<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<title>scroll move</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700,900">
        <link rel="stylesheet" href="style.css">
        <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
	</head>
	<body>
    <div class="container">
        <div id="header">
            <nav>
                <div class="logo">
                    <img src="logo.png" />
                </div>
                <ul>
                    <li><a>HOME</a></li>
                    <li><a>COMPANY</a></li>
                    <li><a>SERVICE</a></li>
                    <li><a>PORODUCT</a></li>
                    <li><a>NOTICE</a></li>
                </ul>
            </nav>
        </div>
    </div>
        <script type="text/javascript">
            $(window).on('scroll',function(){
                if($(window).scrollTop()){
                    $('#header').addClass('active');
                }else{
                    $('#header').removeClass('active');
                }
            });
        </script> 
	</body>
<html>