jQuery選項卡帶箭頭滑動效果是網頁制作中常用的一種效果,它可以給網頁增加一定的交互性和美觀性。下面介紹如何使用jQuery實現這種效果。
//HTML結構 <div class="tab"> <ul class="tab-nav"> <li>選項卡1</li> <li>選項卡2</li> <li>選項卡3</li> </ul> <div class="tab-content"> <div>選項卡1內容</div> <div>選項卡2內容</div> <div>選項卡3內容</div> </div> <div class="arrow"></div> </div> //CSS樣式 .tab { position: relative; } .tab-nav { display: flex; justify-content: space-between; width: 100%; margin: 0; padding: 0; } .tab-nav li { position: relative; list-style: none; cursor: pointer; margin-right: 30px; } .tab-nav li.active { color: #f00; } .tab-content { position: absolute; top: 40px; left: 0; width: 100%; height: auto; } .tab-content >div { display: none; } .tab-content >div.active { display: block; } .arrow { position: absolute; top: 38px; z-index: 1; width: 10px; height: 10px; background: #000; transform: rotate(45deg); cursor: pointer; } //JS代碼 $(function() { //初始化第一個選項卡的樣式 $('.tab-nav li:first').addClass('active'); $('.tab-content div:first').addClass('active').css('display', 'block'); //獲取選項卡導航和每個選項卡的寬度 var tabNav = $('.tab-nav'); var tabNavLi = $('.tab-nav li'); var tabNavW = tabNav.width(); var tabNavLiW = tabNavLi.width(); //根據選項卡導航數量設置選項卡容器寬度 var tabContentW = 100 * tabNavLi.length + '%'; $('.tab-content').css('width', tabContentW); $('.tab-content >div').css('width', 100 / tabNavLi.length + '%'); //初始化箭頭位置 $('.arrow').css('left', tabNavLiW / 2 - 5); //選項卡導航點擊事件 $('.tab-nav li').click(function() { var index = $(this).index(); //設置選項卡樣式 $(this).addClass('active').siblings().removeClass('active'); //設置選項卡內容樣式 $('.tab-content >div').eq(index).addClass('active').siblings().removeClass('active'); //移動箭頭 var arrowPos = tabNavLiW * index + tabNavLiW / 2 - 5; $('.arrow').animate({ left: arrowPos }, 300); }); });
通過上述代碼,我們可以實現一個簡單的jQuery選項卡帶箭頭滑動效果,讓網頁更加美觀和互動。