하단에 고정 네비게이션 바 만들기 > jquery

본문 바로가기

jquery

하단에 고정 네비게이션 바 만들기

작성일 15-07-09 13:17

페이지 정보

작성자서방님 조회 113회 댓글 0건

본문

하단의 고정 네이게이션 바를 만드는 방법 이라는 거창한 이름을 주었으나 간단히 설명 하자면

페이지가 넘어갈때 같이 안넘어 가는 것 처럼 보이는 네비게이션바 정도로 해석 하자.

뭔 소리인가 하면

링크를 클릭 해서 페이지가 이동할때 앱처럼 오른쪽에서 왼쪽으로 샤샤샥 이동을(설정에 따라다름) 하는 에니메이션을 기본으로 보여 주는데(잘 이해가 안되면 직접 만들어 보고 실행 시켜봐라) 그때 일반적으로는 header 와 footer 가 같이 이동을 한다.

하지만 네비게이션바를 footer 에(또는 header에 ) 둘 경우 그건 안바뀌는 것처럼 보이고 가운데 컨텐츠만 바뀌면 좋겠다 싶은 경우가 있을 것이다. (앱이 보통 그렇게 보이니까.) 그럴 경우 사용하는 것이다.

뭐 설명은 이정도로 하고 코드를 바로 보자.

 

<div data-role="page" id="page">
 <div data-role="header">
  <h1>Page one</h1>
 </div>
 <div data-role="content"> 
  <ul data-role="listview">
   <li><a href="#page2">Page Two</a></li>
            <li><a href="#page3">Page Three</a></li>
   <li><a href="#page4">Page Four</a></li>
  </ul>  
 </div>
 <div data-role="footer" data-position="fixed" data-id="footer">
  <nav data-role="navbar">
         <a href="#page" class="ui-btn-active ui-state-persist">main</a>
            <a href="#page2">page2</a>
            <a href="#page3">page3</a>
            <a href="#page4">page4</a>
        </nav>
 </div>
</div>

<div data-role="page" id="page2">
 <div data-role="header">
  <h1>Page Two</h1>
 </div>
 <div data-role="content"> 
  Content  
 </div>
 <div data-role="footer" data-position="fixed" data-id="footer">
    <nav data-role="navbar">
         <a href="#page">main</a>
            <a href="#page2" class="ui-btn-active ui-state-persist">page2</a>
            <a href="#page3">page3</a>
            <a href="#page4">page4</a>
        </nav>
 </div>
</div>

<div data-role="page" id="page3">
 <div data-role="header">
  <h1>Page Three</h1>
 </div>
 <div data-role="content"> 
  Content  
 </div>
 <div data-role="footer" data-position="fixed" data-id="footer">
    <nav data-role="navbar">
         <a href="#page">main</a>
            <a href="#page2">page2</a>
            <a href="#page3" class="ui-btn-active ui-state-persist">page3</a>
            <a href="#page4">page4</a>
        </nav>
 </div>
</div>

<div data-role="page" id="page4">
 <div data-role="header">
  <h1>Page Four</h1>
 </div>
 <div data-role="content"> 
  Content  
 </div>
 <div data-role="footer" data-position="fixed" data-id="footer">
    <nav data-role="navbar">
         <a href="#page">main</a>
            <a href="#page2">page2</a>
            <a href="#page3">page3</a>
            <a href="#page4" class="ui-btn-active ui-state-persist">page4</a>
        </nav>
 </div>
</div>

 

이 코드는 드림위버5.5에서 생성해준 코드를 일부 변형 한 것이다.

주의해서 봐야 할 것은

<div data-role="footer" data-position="fixed" data-id="footer">
이 부분이다. (권장은 footer 태그를 써서 푸터를 묶어야 하는데.. 드림위버는 아직 그렇게 안하네..)

data-role는 footer 로 설정 하고 data-position은 fixed (이걸 다른거로 설정 하면 제대로 작동을 안한다.)하고, 마지막으로 data-id를 모두 동일하게 설정을 한다.

그런 다음에 네비게이션 바를 만들기 위해

<nav data-role="navbar">
태그로 네비게이션 바를 생성 했다.

그리고 각 페이지에서는 자기 페이지가 선택 되었다는 것을 알리기 위해 a 태그에  class="ui-btn-active ui-state-persist" 를 추가 했다.

뭐 난 어떤 페이지가 선택되어 있는지 알리고 싶지 않다.. 하면 안넣어도 무방 하다.

 

이제 핵심을 정리 한다.

footer 에 data-id 를 동일하게 설정하고 그 안에 코드도 동일(최소한 비슷) 하게 설정 하면 페이지이동 에니메이션과 무관하게 보여지게 된다는것을 이용해서 고정네비게이션바를 만드는 방법이다.

즉 이동하지 않는 것 처럼 보일 뿐이지 실제로는 이동한다는 것이 중요하겠지.. 일반 웹에서의 방식과 비슷하나 중요한것은 다음내용이 다 보여지기 전까지 이전 내용이 남아 있다는 것이다. 그래서 그자리를 항상 지키는 것 처럼 보이는 것이지.

댓글목록

등록된 댓글이 없습니다.

게시물 검색
Copyright © 서방님.kr All rights reserved.
PC 버전으로 보기