問題簡介:如何實現點擊按鈕時右側邊框變為45度曲線的分段器效果?
實現點擊按鈕時右側邊框變為45度曲線的分段器效果,可以使用css中的clip-path屬性和path函數來實現。這種方法可以通過控制路徑的方式來實現復雜的形狀變化。
具體來說,可以在html中創建一個包含兩個標簽的結構,每個標簽占50%的寬度。當某個標簽被點擊并激活時,通過添加active類來改變其樣式。在css中,可以使用clip-path屬性來定義激活狀態下的標簽的形狀。
以下是一個具體的實現代碼示例:
<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>梯形tab按鈕-基于clip-path path函數實現</title> <style> .wrap { background-color: #eee; width: 375px; margin: 0 auto; padding: 10px; } .tabs { display: flex; width: 100%; overflow: hidden; border-radius: 8px 8px 0 0; background: linear-gradient(#cdd9fe, #e2e9fd); } .tab { flex: 0 0 50.1%; height: 50px; cursor: pointer; position: relative; text-align: center; line-height: 50px; } .tab.active { background-color: #fff; color: #4185ef; } .tab.active:before { content: ''; position: absolute; top: 0; left: -50px; height: 100%; width: 50px; z-index: 2; background-color: #fff; clip-path: path('M 0,50 C 25,50 25,0 50,0 L 50, 50 Z'); } .tab.active:after { content: ''; position: absolute; top: 0; right: -50px; height: 100%; width: 50px; z-index: 2; background-color: #fff; clip-path: path('M 0,0 C 25,0 25,50 50,50 L 0, 50 Z'); } .content-wrap { min-height: 200px; background-color: #fff; } </style> <script src="https://cdn.bootcdn.net/ajax/libs/alpinejs/3.10.3/cdn.min.js" defer></script> <script src="https://unpkg.com/@unocss/runtime"></script> <script> window.__unocss = { rules: [], presets: [], } </script> </head> <body> <div class="wrap" x-data="initData()"> <div class="tabs"> <template x-for="index in 2" :key="index"> <div @click="onTabClick(index)" class="tab" :class="{ 'active': activeIndex == index }" x-text="'標簽' + index"> </div> </template> </div> <div class="content-wrap"> </div> </div> <script> function initData() { return { activeIndex: 1, onTabClick(index) { this.activeIndex = index } } } </script> </body> </html>
在這個示例中,當標簽被激活時,clip-path屬性通過path函數定義了一個45度的曲線形狀,實現了左右邊框的變化效果。這樣就可以實現點擊左側按鈕時右側邊框變為45度曲線,點擊右側反之的效果。
立即學習“前端免費學習筆記(深入)”;
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END