html如何多窗口切换效果图,小程序做一个能够左右滑动切换的多tab页面

小程序是轻量级的app,本应小巧精悍、用完即走,但是很多企业还是想要在这辆自行车上装发动机,要求拥有原生APP的操作体验。作为一介码农也只能默默想办法实现了,总不能说这东西我不想做吧

20190427184225904898.png

有兴趣可以在Github看看另外几个需求实现

效果图

这次要实现的是在APP中常见的多TAB滑动切换功能,没有什么可介绍的,直接上成果图:

20190427184226077756.gif

本来如果在web端上实现,直接去找现成的轮子使用就可以了(避免重复造轮子,而且我造的轮子也不见得有别人的好)

奈何小程序与web还有些区别,现成的轮子都用不上,还是只能自己动手造一个了。幸运的是小程序自带的部分组件也能用得上,不用从头开始造。

组件结构

// 顶部的tab选择器

// 能够左右滑动的swiper组件

// 某一个tab的列表

// 数据项

...

...

组件结构也并不复杂,这样层层嵌套只是为了保证组件各司其职、利于维护

所利用的属性:

swiper

可以左右滑动

通过current属性切换到指定的项

监听手动滑动的change事件

scroll-view

用 scroll-into-view 属性滑动到指定的位置

scroll-with-animation="{{true}}" 平滑滚动

duration="{{200}}" 属性指定动画时长

存在的不足

从第一项切换到第三项时swiper会 1 -> 2 -> 3 的顺序切换,似乎没有直接切换的办法(设置swiper的duration属性为0可以瞬间切换,但是滑动的效果会变得奇怪)

切换动画偶尔会掉帧,原因未知,优化方式未知

原文:https://www.cnblogs.com/wozho/p/10779598.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5 并没有提供页面切换 tab 的功能,但可以通过结合 CSS 和 JavaScript 实现该效果。以下是一个示例: HTML 代码: ```html <div class="tab-container"> <div class="tab-header"> <div class="tab-item active" data-tab="tab1">Tab 1</div> <div class="tab-item" data-tab="tab2">Tab 2</div> <div class="tab-item" data-tab="tab3">Tab 3</div> </div> <div class="tab-content"> <div class="tab-pane active" data-tab="tab1"> <p>Content for Tab 1 goes here.</p> </div> <div class="tab-pane" data-tab="tab2"> <p>Content for Tab 2 goes here.</p> </div> <div class="tab-pane" data-tab="tab3"> <p>Content for Tab 3 goes here.</p> </div> </div> </div> ``` CSS 代码: ```css .tab-container { width: 100%; height: 100%; position: relative; } .tab-header { display: flex; width: 100%; justify-content: center; align-items: center; } .tab-item { font-weight: bold; padding: 10px 20px; cursor: pointer; border: 1px solid #ccc; } .tab-item.active { border-bottom: none; } .tab-content { position: absolute; top: 50px; left: 0; width: 100%; height: calc(100% - 50px); } .tab-pane { display: none; height: 100%; padding: 20px; } .tab-pane.active { display: block; } ``` JavaScript 代码: ```javascript const tabItems = document.querySelectorAll('.tab-item'); const tabPanes = document.querySelectorAll('.tab-pane'); tabItems.forEach(item => { item.addEventListener('click', () => { const activeTab = item.dataset.tab; tabItems.forEach(item => item.classList.remove('active')); tabPanes.forEach(pane => pane.classList.remove('active')); item.classList.add('active'); document.querySelector(`[data-tab="${activeTab}"]`).classList.add('active'); }); }); ``` 以上代码实现了一个简单的滑动页面切换 tab,你可以根据自己的需求进行修改和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值