uni-app实现滑动切换效果

本文详细介绍了如何在uni-app中利用scroll-view组件实现滑动切换效果,包括封装组件、父级组件布局及事件处理。同时讲解了uni-app的云打包过程,帮助开发者快速生成原生应用,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、tab顶部导航栏小程序

页面布局,使用uni-app提供的scroll-view组件。api

这个页面至关于封装一个组件,便于其余他们调用使用,tabIndex这个是tab内容,tabIndex对应的索引值,表示第几个。scrollStyle父级样式设置,scrollItemStyle每个tab内容样式设置数据结构

样式app

tabtap点击切换效果,自定义一个tabtap事件,传递给父级,和vue语法同样框架

二、在父级组件布局

1.第一步先引入上面封装好的组件,测试

注册组件

2.使用组件ui

3.在data定义好数据

4.在方法中使用传过来的事件

5.也是须要在data定义一下内容,newslist是循环遍历的tab内容的内容,大概数据结构就是这样的,swiperheight这个是须要动态计算可视区域内容的高度

6.在methods方法中写手动切换的效果

 7.动态计算高度,upx2x是吧px转换成upx,调用这个api,须要在onLoad生命周期写

 三、云打包



 

一、tab顶部导航栏小程序

页面布局,使用uni-app提供的scroll-view组件。api

<template>
    <view class="uni-tab-bar">
        <scroll-view class="uni-swiper-tab" scroll-x>
            <block v-for="(tab,index) in tabBars" :key="tab.id" :style="scrollStyle">
                <view class="swiper-tab-list" :class="{'active' : tabIndex==index}" @tap="tabtap(index)" :style="scrollItemStyle"
                > {{tab.name}} {{tab.num?tab.num:""}} <view class="swiper-tab-line"></view>
                </view>
            </block>
        </scroll-view>
    </view>
</template>

这个页面至关于封装一个组件,便于其余他们调用使用,tabIndex这个是tab内容,tabIndex对应的索引值,表示第几个。scrollStyle父级样式设置,scrollItemStyle每个tab内容样式设置数据结构

<script>
	export default {
		props:{
			tabBars:Array,
			tabIndex:Number,
			scrollStyle:{
				type:String,
				default:""
			},
			scrollItemStyle:{
				type:String,
				default:""
			}
		},
		methods:{
			//点击切换导航
			tabtap(index){
				// this.tabIndex = index;
				this.$emit('tabtap',index)
			}
		}
	}
</script> 

样式app

<style scoped >
.uni-swiper-tab{
		border-bottom: 1upx solid #EEEEEE;
	}
	.swiper-tab-list{
		color: #969696;
		font-weight: bold;
	}
	.uni-tab-bar .active{
		color: #343434;
	}
	.active .swiper-tab-line{
		border-bottom: 6upx solid #FEDE33;
		width: 70upx;
		margin: auto;
		border-top: 6upx solid #FEDE33;
		border-radius: 20upx;
	}
</style>

tabtap点击切换效果,自定义一个tabtap事件,传递给父级,和vue语法同样框架

二、在父级组件布局

1.第一步先引入上面封装好的组件,测试

import swiperTabHead from "../../components/index/swiper-tab-head.vue";

注册组件

components:{
     swiperTabHead,
   }

2.使用组件ui

<swiperTabHead :tabBars="tabBars" :tabIndex="tabIndex" @tabtap="tabtap"></swiperTabHead>

3.在data定义好数据

export default {
     data(){
         tabIndex:0,// 选中的
	tabBars:[
          { name:"关注",id:"guanzhu" },
	  { name:"推荐",id:"tuijian" },
	  { name:"体育",id:"tiyu" },
	  { name:"热点",id:"redian"  },
	  { name:"财经",id:"caijing" },
	  { name:"娱乐",id:"yule"    },
       ]	    			    
    }
}

4.在方法中使用传过来的事件

//接受子组件传过来的值点击切换导航
 tabtap(index){ this.tabIndex = index; },

切换内容,直接在父组件写

<view class="uni-tab-bar">
            <swiper class="swiper-box" :style="{height:swiperheight+'px'}" :current="tabIndex" @change="tabChange">
                <swiper-item v-for="(items,index) in newslist" :key="index">
                    <scroll-view scroll-y class="list">
                        <template v-if="items.list.length > 0">
                            <!-- 图文列表 -->
                            <block v-for="(item,index1) in items.list" :key="index1">
                                <view>{{item}}</view>
                            </block>
                        </template>
                    </scroll-view>
                </swiper-item>
            </swiper>
        </view>

5.也是须要在data定义一下内容,newslist循环遍历tab内容的内容,大概数据结构就是这样的,swiperheight这个是须要动态计算可视区域内容的高度

swiperheight:500,//高度
newslist:[ { list:[ 数据内天 ] }, {}, {}, {}, {}, {} ]

6.在methods方法中写手动切换的效果

//滑动切换导航
tabChange(e){
   this.tabIndex = e.detail.current;
},

 7.动态计算高度upx2x是吧px转换成upx,调用这个api,须要在onLoad生命周期写

onLoad() {
   uni.getSystemInfo({
	success:(res)=>{
		let height = res.windowHeight-uni.upx2px(100)
		this.swiperheight = height;
	}
    })
},

 三、云打包

uni-app是一款基于Vue.js的跨平台开发框架,它支持一次编写,多端发布,包括了H5、小程序、App等多个平台。在uni-app中,云打包是一种将uni-app项目打包到云端生成原生应用的功能。

云打包能够帮助开发者将uni-app项目打包,并生成对应平台的原生应用,无需在本地进行繁琐的配置和编译工作。使用云打包,可以大大简化开发流程,提高开发效率。

在uni-app中,使用云打包需要以下步骤:

  1. 登录HBuilderX编辑器,并打开你的uni-app项目。
  2. 在HBuilderX的底部工具栏中,点击云打包按钮。
  3. 在云打包页面中,选择目标平台(比如iOS、Android等)。
  4. 配置应用相关信息,比如应用名称、应用图标、包名等。
  5. 点击开始打包按钮,等待打包完成。
  6. 打包完成后,会生成对应平台的原生应用文件,可以进行安装和发布。

需要注意的是,云打包功能可能需要付费或者是需要开发者账号的相关权限才能使用,具体以HBuilderX的最新版本和相关文档为准。

 以上就是用uni-app实现的一个tab切换的效果,能够使用任何平台,已经测试几个平台,都没有问题

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值