uniApp混合开发小程序实现自定义底部tab仿绿洲APP动画效果

8 篇文章 0 订阅
6 篇文章 0 订阅

今天在使用绿洲APP时感觉底部的切换效果不错,就想试着做一下,但是uniAPP官方的底部tab太过死板,那么要想实现绿洲APP的切换效果自然不能用官方的东西,那咋办嘞?像我这么爱折腾的人肯定是自己尝试着去写一个啦

说干就干,我们把页面分成两个部分,上面是内容区,下面是固定且浮在上层的tab区域

每当点击时获取当前tab的索引并根据索引切换内容区

页面部分代码

    <view class="content">
        <view class="tabCon">
			{{tabBarList[index].pagePath}}
		</view>
		<view class="tab">
			<div class="tabItem" @tap='swichTab(0)'>
				<image :src="index == 0 ? tabBarList[0].selectedIconPath : tabBarList[0].iconPath" :class="[istab == 0 ? 'tabImg acImg' : 'tabImg']"></image>
			</div>
			<div class="tabItem" @tap='swichTab(1)'>
				<image :src="index == 1 ? tabBarList[1].selectedIconPath : tabBarList[1].iconPath" :class="[istab == 1 ? 'tabImg acImg' : 'tabImg']"></image>
			</div>
			<div class="tabAdd" @tap='swichTab(2)'>
				<image :src="tabBarList[2].iconPath" class="addImg"></image>
			</div>
			<div class="tabItem" @tap='swichTab(3)'>
				<image :src="index == 3 ? tabBarList[3].selectedIconPath : tabBarList[3].iconPath" :class="[istab == 3 ? 'tabImg acImg' : 'tabImg']"></image>
			</div>
			<div class="tabItem" @tap='swichTab(4)'>
				<image :src="index == 4 ? tabBarList[4].selectedIconPath : tabBarList[4].iconPath" :class="[istab == 4 ? 'tabImg acImg' : 'tabImg']"></image>
			</div>
		</view>
	</view>

 

data中的内容

                index: 0,
				istab: 9,
				clicAble : true,
				tabBarList: [{
					"pagePath": "../home/home",
					"iconPath": "../../static/nav_bottom_home_normal.png",
					"selectedIconPath": "../../static/nav_bottom_home_hl.png",
				}, {
					"pagePath": "../discover/discover",
					"iconPath": "../../static/nav_bottom_discover_normal.png",
					"selectedIconPath": "../../static/nav_bottom_discover_hl.png",
				},{
					"pagePath": "../more/more",
					"iconPath": "../../static/nav_bottom_more_normal.png",
				},{
					"pagePath": "../message/message",
					"iconPath": "../../static/nav_bottom_message_normal.png",
					"selectedIconPath": "../../static/nav_bottom_message_hl.png",
				}, {
					"pagePath": "../mine/mine",
					"iconPath": "../../static/nav_bottom_mine_normal.png",
					"selectedIconPath": "../../static/nav_bottom_mine_hl.png",
				}],

css动画

.tabImg{
	width: 50upx;
	height: 50upx;
	position: relative;
	top: 31upx;
}

@-webkit-keyframes bounce {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.4);
    }
    100% {
        transform: scale(1);
    }
}

.acImg{
	animation: bounce .3s;
}

 

实现效果

 

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UniApp 是一个使用 Vue.js 开发跨平台应用的前端框架,它支持将代码一次编写,即可发布到多个平台,包括微信小程序。在 UniApp 中,自定义底部 tabbar 非常简单,只需要在 pages.json 中指定 tabBar 配置,然后在页面中使用自己的自定义 tabbar 组件即可。 以下是自定义底部 tabbar 的步骤: 1. 在 pages.json 文件中设置 tabBar 配置,如下所示: ```javascript { "tabBar": { "custom": true, // 使用自定义tabBar "color": "#7A7E83", "selectedColor": "#3cc51f", "backgroundColor": "#ffffff", "borderStyle": "white", "list": [ { "pagePath": "pages/index/index", "text": "首页", "iconPath": "/static/tabbar/home.png", "selectedIconPath": "/static/tabbar/home-active.png" }, { "pagePath": "pages/user/user", "text": "我的", "iconPath": "/static/tabbar/user.png", "selectedIconPath": "/static/tabbar/user-active.png" } ] } } ``` 2. 在页面中引入自己的自定义 tabbar 组件,并使用该组件替换默认的 tabBar,如下所示: ```javascript <template> <view> <router-view /> <my-tab-bar :list="list" :active.sync="active" /> </view> </template> <script> import MyTabBar from '@/components/MyTabBar.vue' export default { components: { MyTabBar }, data () { return { active: 0, list: [ { text: '首页', icon: '/static/tabbar/home.png', selectedIcon: '/static/tabbar/home-active.png', path: '/pages/index/index' }, { text: '我的', icon: '/static/tabbar/user.png', selectedIcon: '/static/tabbar/user-active.png', path: '/pages/user/user' } ] } } } </script> ``` 以上是自定义底部 tabbar 的简单介绍,如果您需要更详细的内容,请查看 UniApp 的官方文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值