채택완료

스크롤바를 내려도 메뉴가 상단에 고정되게 하려면..

2014-08-08 (금) 12:55:08 15,669

* 적용한 사이트 : http://27.102.207.19/~word/

http://tomonari.co.kr  이곳 메뉴처럼 적용하려 합니다....

스크롤바를 내려도 메뉴가 상단에 고정되게끔 하려고 합니다.

// 수정한 곳 과 수정한 소스

skin/shop/sirex/boxcategory.skin.php

-> 아래와 같이 gnb 부분이 메뉴부분같아서 자바소스에 gnb를 넣었더니 적용한 사이트 처럼 가운데로 안뜨고

제대로 작동을 안하네요... CSS 부분이 문제 인것같은데 ㅠㅠ gnb에 관련된 CSS를 수정해주어야 하는건가요?...


고수님들 한수 부탁드리겠습니다....

Copy
<!-- ★ 상단 메뉴 고정 스크롤 자바스크립트-->        </ul>    $(function(){ // document ready      if (!!$('#gnb').offset()) { // make sure "#gnb" element exists        var stickyTop = $('#gnb').offset().top; // returns number         $(window).scroll(function(){ // scroll event          var windowTop = $(window).scrollTop(); // returns number           if (stickyTop < windowTop){            $('#gnb').css({ position: 'fixed', top: 0 });          }          else {            $('#gnb').css('position','static');          }        });      }    });  </script> <!-- ★ 상단 메뉴 고정 스크롤 자바스크립트--> <!-- 쇼핑몰 카테고리 시작 { --><nav id="gnb">    <h2>쇼핑몰 카테고리</h2>    <div class="hd_inner">        <ul id="gnb_1dul">            <?php            // 1단계 분류 판매 가능한 것만            $hsql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '2' and ca_use = '1' order by ca_id ";            $hresult = sql_query($hsql);            for ($i=0; $row=sql_fetch_array($hresult); $i++)            {                // 2단계 분류 판매 가능한 것만                $sql2 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row['ca_id']}' and ca_use = '1' order by ca_id ";                $result2 = sql_query($sql2);                $count = mysql_num_rows($result2);            ?>            <li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex; ?>">                <a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row['ca_id']; ?>" class="gnb_1da<?php if ($count) echo ' gnb_1dam'; ?>"><?php echo $row['ca_name']; ?></a>                <?php                for ($j=0; $row2=sql_fetch_array($result2); $j++)                {                if ($j==0) echo '<ul class="gnb_2dul">';                ?>                    <li class="gnb_2dli"><a href="<?php echo G5_SHOP_URL; ?>/list.php?ca_id=<?php echo $row2['ca_id']; ?>" class="gnb_2da gnb_2da<?php echo $j%2; ?>"><?php echo $row2['ca_name']; ?></a></li>                <?php }                if ($j>0) echo '</ul>';                ?>            </li>            <?php } ?>        </ul>​
|

답변 2개

채택된 답변
+20 포인트

nav#gnb{width:100%}

해보세요.

위분 답변이 맞습니다.

제가 테스트한 전체 소스

<!DOCTYPE html>

<html>

<head>

  <title></title>

</head>

<style>

body{margin:0 auto;}

div{height:100000px;}

#gnb{width:100%;height:60px;background-color:black;}

</style>

<body>

 <nav id="gnb">

 </nav>

 <div>

 </div>

</body>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>

$(function(){ // document ready

      if (!!$('#gnb').offset()) { // make sure "#gnb" element exists

        var stickyTop = $('#gnb').offset().top; // returns number

        $(window).scroll(function(){ // scroll event

          var windowTop = $(window).scrollTop(); // returns number

          if (stickyTop < windowTop){

            $('#gnb').css({ position: 'fixed', top: '0px'});

          }

          else {

            $('#gnb').css('position','static');

          }

        });

      }

    });

</script>

</html>

답변을 작성하려면 로그인이 필요합니다.