시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
happycgi
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크 jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
 > CSS > 기본 소스 > Animated Tab Bar - 애니메이션 탭 표시줄 상세정보
사이트등록
클라우드태그
javascript
php
CSS
html
ASP
API
jquery
mysql
image
mobile
slide
게시판
메뉴
현재접속자 22 새로고침
Animated Tab Bar - 애니메이션 탭 표시줄
소스통계정보 오류신고 및 문의
해피팀
네티즌
트위터로 보내기 페이스북으로 보내기 네이버로공유
소스분류 기본 소스
다운로드 횟수 123 회
간단설명 여러장의 이미지를 하나의 움직이는 GIF로 만드는 웹페이지입니다.
평가하기 훌륭함 매우좋음 좋음 괜찮음 보통 별로
홈페이지바로가기 데모 미리보기 스크랩하기

애니메이션 탭 표시줄은 애니메이션과 전환을 사용하여 사용자에게 더욱 직관적인 인터페이스를 제공해 줄 수 있습니다.
탭을 클릭하면 해당 탭과 관련된 콘텐츠가 쉬운 애니메이션으로 표시하게 됩니다.
애니메이션 탭 표시줄은 웹페이지 좀더 역동적이고 매력적으로 만들 수 있습니다.

모든 탭과 관련된 콘텐츠를 쉬운 애니메이션으로 보여줌으로써 현재 웹 사이트 또는 앱의 어느 부분에 있는지,
다른 섹션으로 이동하는 방법을 쉽게 이해할 수 있게 만들어 주는 효과가 있습니다.

HTML 구조

<menu class="menu">

    

    <button class="menu__item active" style="--bgColorItem: #ff8c00;" >

      <svg class="icon" viewBox="0 0 24 24">

        <path d="M3.8,6.6h16.4"/>

        <path d="M20.2,12.1H3.8"/>

        <path d="M3.8,17.5h16.4"/>

      </svg>

    </button>


    <button class="menu__item" style="--bgColorItem: #f54888;">

      <svg class="icon" viewBox="0 0 24 24">

        <path  d="M6.7,4.8h10.7c0.3,0,0.6,0.2,0.7,0.5l2.8,7.3c0,0.1,0,0.2,0,0.3v5.6c0,0.4-0.4,0.8-0.8,0.8H3.8

        C3.4,19.3,3,19,3,18.5v-5.6c0-0.1,0-0.2,0.1-0.3L6,5.3C6.1,5,6.4,4.8,6.7,4.8z"/>

        <path  d="M3.4,12.9H8l1.6,2.8h4.9l1.5-2.8h4.6"/>

      </svg>

    </button>


    <button class="menu__item" style="--bgColorItem: #4343f5;" >

      <svg class="icon" viewBox="0 0 24 24">

      <path  d="M3.4,11.9l8.8,4.4l8.4-4.4"/>

      <path  d="M3.4,16.2l8.8,4.5l8.4-4.5"/>

      <path  d="M3.7,7.8l8.6-4.5l8,4.5l-8,4.3L3.7,7.8z"/>

    </button>


    <button class="menu__item" style="--bgColorItem: #e0b115;" > 

      <svg class="icon" viewBox="0 0 24 24" >

        <path  d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1

          C3.9,4.4,4.4,3.9,5.1,3.9z"/>

        <path  d="M4.2,9.3h15.6"/>

        <path  d="M9.1,9.5v10.3"/>

    </button>


    <button class="menu__item" style="--bgColorItem:#65ddb7;">

      <svg class="icon" viewBox="0 0 24 24" >

        <path  d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1

          C3.9,4.4,4.4,3.9,5.1,3.9z"/>

        <path  d="M5.5,20l9.9-9.9l4.7,4.7"/>

        <path  d="M10.4,8.8c0,0.9-0.7,1.6-1.6,1.6c-0.9,0-1.6-0.7-1.6-1.6C7.3,8,8,7.3,8.9,7.3C9.7,7.3,10.4,8,10.4,8.8z"/>

      </svg>

    </button>


    <div class="menu__border"></div>


  </menu>


  <div class="svg-container">

    <svg viewBox="0 0 202.9 45.5" >

      <clipPath id="menu" clipPathUnits="objectBoundingBox" transform="scale(0.0049285362247413 0.021978021978022)">

        <path  d="M6.7,45.5c5.7,0.1,14.1-0.4,23.3-4c5.7-2.3,9.9-5,18.1-10.5c10.7-7.1,11.8-9.2,20.6-14.3c5-2.9,9.2-5.2,15.2-7

          c7.1-2.1,13.3-2.3,17.6-2.1c4.2-0.2,10.5,0.1,17.6,2.1c6.1,1.8,10.2,4.1,15.2,7c8.8,5,9.9,7.1,20.6,14.3c8.3,5.5,12.4,8.2,18.1,10.5

          c9.2,3.6,17.6,4.2,23.3,4H6.7z"/>

      </clipPath>

    </svg>

  </div>



CSS 소스

<menu class="menu">

    

    <button class="menu__item active" style="--bgColorItem: #ff8c00;" >

      <svg class="icon" viewBox="0 0 24 24">

        <path d="M3.8,6.6h16.4"/>

        <path d="M20.2,12.1H3.8"/>

        <path d="M3.8,17.5h16.4"/>

      </svg>

    </button>


    <button class="menu__item" style="--bgColorItem: #f54888;">

      <svg class="icon" viewBox="0 0 24 24">

        <path  d="M6.7,4.8h10.7c0.3,0,0.6,0.2,0.7,0.5l2.8,7.3c0,0.1,0,0.2,0,0.3v5.6c0,0.4-0.4,0.8-0.8,0.8H3.8

        C3.4,19.3,3,19,3,18.5v-5.6c0-0.1,0-0.2,0.1-0.3L6,5.3C6.1,5,6.4,4.8,6.7,4.8z"/>

        <path  d="M3.4,12.9H8l1.6,2.8h4.9l1.5-2.8h4.6"/>

      </svg>

    </button>


    <button class="menu__item" style="--bgColorItem: #4343f5;" >

      <svg class="icon" viewBox="0 0 24 24">

      <path  d="M3.4,11.9l8.8,4.4l8.4-4.4"/>

      <path  d="M3.4,16.2l8.8,4.5l8.4-4.5"/>

      <path  d="M3.7,7.8l8.6-4.5l8,4.5l-8,4.3L3.7,7.8z"/>

    </button>


    <button class="menu__item" style="--bgColorItem: #e0b115;" > 

      <svg class="icon" viewBox="0 0 24 24" >

        <path  d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1

          C3.9,4.4,4.4,3.9,5.1,3.9z"/>

        <path  d="M4.2,9.3h15.6"/>

        <path  d="M9.1,9.5v10.3"/>

    </button>


    <button class="menu__item" style="--bgColorItem:#65ddb7;">

      <svg class="icon" viewBox="0 0 24 24" >

        <path  d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1

          C3.9,4.4,4.4,3.9,5.1,3.9z"/>

        <path  d="M5.5,20l9.9-9.9l4.7,4.7"/>

        <path  d="M10.4,8.8c0,0.9-0.7,1.6-1.6,1.6c-0.9,0-1.6-0.7-1.6-1.6C7.3,8,8,7.3,8.9,7.3C9.7,7.3,10.4,8,10.4,8.8z"/>

      </svg>

    </button>


    <div class="menu__border"></div>


  </menu>


  <div class="svg-container">

    <svg viewBox="0 0 202.9 45.5" >

      <clipPath id="menu" clipPathUnits="objectBoundingBox" transform="scale(0.0049285362247413 0.021978021978022)">

        <path  d="M6.7,45.5c5.7,0.1,14.1-0.4,23.3-4c5.7-2.3,9.9-5,18.1-10.5c10.7-7.1,11.8-9.2,20.6-14.3c5-2.9,9.2-5.2,15.2-7

          c7.1-2.1,13.3-2.3,17.6-2.1c4.2-0.2,10.5,0.1,17.6,2.1c6.1,1.8,10.2,4.1,15.2,7c8.8,5,9.9,7.1,20.6,14.3c8.3,5.5,12.4,8.2,18.1,10.5

          c9.2,3.6,17.6,4.2,23.3,4H6.7z"/>

      </clipPath>

    </svg>

  </div>



JS 소스

// Designed by:  Mauricio Bucardo

// Original image:

// https://dribbble.com/shots/5619509-Animated-Tab-Bar


"use strict"; 


const body = document.body;

const bgColorsBody = ["#ffb457", "#ff96bd", "#9999fb", "#ffe797", "#cffff1"];

const menu = body.querySelector(".menu");

const menuItems = menu.querySelectorAll(".menu__item");

const menuBorder = menu.querySelector(".menu__border");

let activeItem = menu.querySelector(".active");


function clickItem(item, index) {


    menu.style.removeProperty("--timeOut");

    

    if (activeItem == item) return;

    

    if (activeItem) {

        activeItem.classList.remove("active");

    }


    

    item.classList.add("active");

    body.style.backgroundColor = bgColorsBody[index];

    activeItem = item;

    offsetMenuBorder(activeItem, menuBorder);

    

    

}


function offsetMenuBorder(element, menuBorder) {


    const offsetActiveItem = element.getBoundingClientRect();

    const left = Math.floor(offsetActiveItem.left - menu.offsetLeft - (menuBorder.offsetWidth  - offsetActiveItem.width) / 2) +  "px";

    menuBorder.style.transform = `translate3d(${left}, 0 , 0)`;


}


offsetMenuBorder(activeItem, menuBorder);


menuItems.forEach((item, index) => {


    item.addEventListener("click", () => clickItem(item, index));

    

})


window.addEventListener("resize", () => {

    offsetMenuBorder(activeItem, menuBorder);

    menu.style.setProperty("--timeOut", "none");

});


 

네티즌 의견   이용하신 자료의 후기를 자유롭게 작성하세요. (상업적인 광고 및 도배성 글 등은 사전통보없이 삭제될 수 있습니다.)
내용 아이디 의견남기기
등록된 의견이 없습니다.
1
이름
내용
:네맞아요: :화나는군요: :잠와: :우울해: :이건아냐: :왕하하: 왕웃음~ 놀램~
평가하기 훌륭함 매우좋음 좋음 괜찮음 보통 별로
도배방지키
 21828520 보이는 도배방지키를 입력하세요.