본문 바로가기
프로그램/탭(Tabs)

심플한 애니메이션 탭(Tab bar animation)

by 다온다올과함께 2024. 8. 6.

 

결과 이미지

 

 

HTML

먼저 HTML 구조를 작성합니다:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tab Bar Line Animation</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="tab-container">
        <div class="tab" id="tab1" data-content="content1">Tab 1</div>
        <div class="tab" id="tab2" data-content="content2">Tab 2</div>
        <div class="tab" id="tab3" data-content="content3">Tab 3</div>
        <div class="tab" id="tab4" data-content="content4">Tab 4</div>
        <div class="tab-line"></div>
    </div>

    <div class="tab-content" id="content1">Content 1</div>
    <div class="tab-content" id="content2">Content 2</div>
    <div class="tab-content" id="content3">Content 3</div>
    <div class="tab-content" id="content4">Content 4</div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="script.js"></script>
</body>
</html>

 

 

CSS

탭과 애니메이션 효과를 위한 CSS를 작성합니다:

/* styles.css */
body {
    font-family: Arial, sans-serif;
}

.tab-container {
    position: relative;
    display: flex;
    justify-content: space-around;
    margin-bottom: 20px;
    border-bottom: 2px solid #ddd;
}

.tab {
    padding: 10px 20px;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.tab:hover {
    background-color: #f0f0f0;
}

.tab.active {
    color: #007bff;
}

.tab-line {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #007bff;
    transition: left 0.3s, width 0.3s;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

 

 

jQuery

탭을 클릭할 때 라인이 이동하고 내용을 전환하는 jQuery 코드를 작성합니다:

// script.js
$(document).ready(function() {
    const $tabs = $('.tab');
    const $tabLine = $('.tab-line');
    
    function activateTab($tab) {
        // 모든 탭과 콘텐츠의 활성 상태를 초기화
        $tabs.removeClass('active');
        $('.tab-content').removeClass('active');

        // 클릭된 탭과 관련된 콘텐츠를 활성화
        $tab.addClass('active');
        $('#' + $tab.data('content')).addClass('active');
        
        // 라인 애니메이션 적용
        const tabOffset = $tab.position();
        const tabWidth = $tab.outerWidth();
        
        $tabLine.css({
            left: tabOffset.left,
            width: tabWidth
        });
    }
    
    // 초기 상태: 첫 번째 탭 활성화
    activateTab($tabs.first());
    
    // 탭 클릭 이벤트 처리
    $tabs.click(function() {
        activateTab($(this));
    });
});

 

 

 

 

 

 

반응형

'프로그램 > 탭(Tabs)' 카테고리의 다른 글

Tab bar active animation  (0) 2024.03.26
Navbar concept HTML / CSS only  (0) 2024.03.25
Tab Bar Menu Animation  (0) 2024.03.22
Tab bar animation - Only CSS  (0) 2024.03.21
tab bar animation  (0) 2024.03.20

댓글