当前位置: 首页 > news >正文

【微信小程序】页面tab栏与页面内容联动

目录

前言 

具体效果展示

一、实现思想

二、了解轮播图

三、实现效果


前言 

上一篇文章介绍了如何实现页面tab栏的基础效果(文章链接:http://t.csdn.cn/lyvYs),最终效果还是要与页面内容联动,具体要求是滑动页面,tab栏跟着滑动,点击tab栏页面内容跟着滑动

大家也可以关注我的小程序专栏,学习学习------>微信小程序专栏

具体效果展示

一、实现思想

如何实现联动呢?不妨我们可以将整个页面考虑成一个轮播图,tab栏就如同轮播图的那小点点,可以控制网那个页面点击,有了思路就非常的好实现了,这时候就需要阅读官网,了解那个属性可以跟轮播图绑定,从而实现点击滚动,滑动也可以使tab栏随之滚动

二、了解轮播图

我们直接去uni-app官网找到轮播图

第一我们先了解一下轮播图的内置属性current,简单解释一下,currennt是当前页面的索引,通过tab栏最开始绑定的索引,从而实现点击之后就能切换到指定内容页面,tab栏的索引,就能控制轮播所展现的页面

 第二我们了解一下@change,@change会返回一个current,跟索引一样,只要实现这个与tab栏的索引绑定上,不就可以实现滑动页面内容,tab栏内容也会随之跳转的效果

第三如何生成轮播图代码呢?只要在编辑器中uswiper,就可以生成轮播图代码,如下 

<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000">
	<swiper-item>
		<view class="swiper-item"></view>
	</swiper-item>
	<swiper-item>
		<view class="swiper-item"></view>
	</swiper-item>
</swiper>

三、实现效果

第一生成轮播图,直接输入uswiper,获得轮播图代码段,其中还有许多不要的属性比如:indicator-dots="true" :autoplay="true",一个是轮播图的小点点,一个是控制是否自动滚动,我们都使用不上,要么删除或者将true换成false即可,这里的轮播图是比较小的

我们要讲整个轮播图要与可视高度一样,这里就需要在nLoad生命周期中获得系统高度,在减去tab栏和搜索框的高度就是可视高度,在动态绑定到轮播图上即可:style="'height:'+scrollH+'px'" scrollH是自己定义的

onLoad(e) {
uni.getSystemInfo({ //获取系统信息
		success: (res) => {
// #ifdef MP
		this.scrollH = res.windowHeight - uni.upx2px(225)
//#endif
}
)
}

 

开始绑定current,值接在轮播图中直接使用current动态绑定tab栏的索引,就可以直接实现效果了

:current="currentIndex",不清楚的还需要去上一篇文章了解一下tab栏的索引(文章链接:http://t.csdn.cn/xcZDA) 

接下来在轮播图绑定@change事件,在方法中得到返回的current,不过我们需要调用tab栏自动滚动事件的scrollinto,从而实现,滚动tab栏也随之滚动,同样不了解tab栏如何自动跟随滚动的,需要去上一篇文章了解  (文章链接:http://t.csdn.cn/xcZDA) 

结束语:

本次的分享到此结束啦!!!

如果遇到什么问题,直接私信我就行 

 

相关文章:

  • spring 启动了两个tomcat 端口问题分析
  • (四)JPA - JQPL 实现增删改查
  • 焦虑经济衍生冥想生意,年轻人会为“放空”买单吗?
  • linux之framebuffer(1)
  • Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令
  • Vue:列表排序和筛选(运用计算属性和监视属性(侦听属性))
  • 难点:树的代码
  • vulnhub blogger: 1
  • php项目宝塔搭建实战ThinkAdmin通用公众号小程序后台开发框架
  • Web前端系列技术之Web APIs基础(从基础开始)⑥
  • FPGA学习笔记(四)通过数码管学习顶层模块和例化的编写
  • kafka 代码使用
  • 两个单链表相交的一系列问题
  • 连接查询
  • ArrayList源码解析
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Apache的基本使用
  • CentOS从零开始部署Nodejs项目
  • co.js - 让异步代码同步化
  • Git初体验
  • Median of Two Sorted Arrays
  • opencv python Meanshift 和 Camshift
  • Rancher如何对接Ceph-RBD块存储
  • sublime配置文件
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue脚手架vue-cli
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初识 beanstalkd
  • FaaS 的简单实践
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 如何用纯 CSS 创作一个货车 loader
  • ​MySQL主从复制一致性检测
  • ​业务双活的数据切换思路设计(下)
  • # 飞书APP集成平台-数字化落地
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #define,static,const,三种常量的区别
  • $forceUpdate()函数
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (4)Elastix图像配准:3D图像
  • (第27天)Oracle 数据泵转换分区表
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (区间dp) (经典例题) 石子合并
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一) storm的集群安装与配置
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) Android中ViewStub组件使用
  • (转)Google的Objective-C编码规范
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)程序员疫苗:代码注入
  • (转)为C# Windows服务添加安装程序
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版