滑动效果的标签页切换

演示地址:演示

为每个标签页与相应的按钮设置class,根据不同位置的标签页做不同的变形处理,使用translate3d不会改变元素原本的位置因此不会导致浏览器对相关layout进行重计算,并且translate3d可以触发GPU加速,提升性能。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7         body,html {
 8             height: 100%;
 9             width: 100%;
10             font-size: 10px;
11         }
12         #box {
13             position: absolute;
14             top: 0;
15             left: 0;
16             right: 0;
17             bottom: 0;
18             margin: auto;
19             border: 1px solid black;
20             width: 60rem;
21             height: 36rem;
22             overflow-x: hidden;
23         }
24         .nav {
25             width: 100%;
26             height: 6rem;
27             position: absolute;
28             top: 0;
29             left: 0;
30         }
31         .nav button {
32             display: inline-block;
33             background: black;
34             color: #fff;
35             width: 25%;
36             height: 100%;
37             border: none;
38             text-align: center;
39             border-right: 1px solid #fff;
40             box-sizing: border-box;
41             cursor: pointer;
42         }
43         .nav button:last-child {
44             border-right: none;
45         }
46         .content{
47             position: absolute;
48             top: 6rem;
49             left: 0;
50             width: 100%;
51         }
52         .content .tab {
53             position: absolute;
54             top:0;
55             width: 100%;
56             height: 30rem;
57             transition: transform .8s;
58         }
59     </style>
60 </head>
61 <body>
62     <div id="box">
63         <div class="nav">
64             <button class="btn0">page1</button><button class="btn1">page2</button><button class="btn2">page3</button><button class="btn3">page4</button>
65         </div>
66         <div class="content">
67             <div class="tab tab0" style="background: blue;left:0">tab two</div>
68             <div class="tab tab1" style="background: red;left:60rem">tab one</div>
69             <div class="tab tab2" style="background: yellow;left:120rem">tab three</div>
70             <div class="tab tab3" style="background: pink;left:180rem">tab four</div>
71         </div>
72     </div>
73     <script>
74         window.onload = function() {
75             slideTab('nav','tab',60);
76         }
77         function slideTab(rootName,tabName,width) {
78             var nav = document.querySelector('.'+rootName);
79             var len = document.querySelectorAll('.'+tabName).length;
80 
81             nav.addEventListener('click',function(e) {
82                 var name = e.target.className;
83                 var pattern = /btn([0-9]+)/g;
84                 var index = name.match(pattern)[0].slice(3);
85 
86                 for(var i = 0; i < len; i++) {
87                         document.querySelector('.tab'+i).style.transform = 'translate3d('+ -width * index +'rem,0,0)';88                 }
89             })
90         }
91     </script>
92 </body>
93 </html>

 

转载于:https://www.cnblogs.com/cjw-ryh/p/7847389.html

以下是一个简单的jQuery实现tab标签滑动切换效果的示例代码: HTML结构: ```html <div class="tab-wrap"> <ul class="tab-nav"> <li class="active">Tab1</li> <li>Tab2</li> <li>Tab3</li> <li>Tab4</li> </ul> <div class="tab-content"> <div class="tab-pane active">Tab1 Content</div> <div class="tab-pane">Tab2 Content</div> <div class="tab-pane">Tab3 Content</div> <div class="tab-pane">Tab4 Content</div> </div> </div> ``` CSS样式: ```css .tab-wrap { position: relative; } .tab-nav { display: flex; justify-content: space-between; } .tab-nav li { cursor: pointer; padding: 10px; font-size: 16px; font-weight: bold; border: 1px solid #ccc; border-bottom: none; } .tab-nav li.active, .tab-nav li:hover { background-color: #ccc; } .tab-content { position: absolute; top: 40px; left: 0; width: 100%; height: 200px; overflow: hidden; } .tab-pane { display: none; padding: 20px; } .tab-pane.active { display: block; } ``` JavaScript代码: ```javascript $(function() { // 获取tab标签和内容元素 var $tabNav = $(".tab-nav li"); var $tabContent = $(".tab-pane"); // 绑定tab标签点击事件 $tabNav.click(function() { // 获取点击的tab标签索引 var index = $(this).index(); // 切换tab标签的active类 $tabNav.removeClass("active"); $(this).addClass("active"); // 滑动切换tab内容 $tabContent.stop().animate({ "top": -index * $tabContent.height() }, 500); }); }); ``` 这段代码实现了以下功能: - 点击tab标签切换标签的active状态 - 滑动切换tab内容 注意:这只是一个简单的示例,具体实现方式可以根据需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值