导航栏和内容互相联动(uniapp+vue3)。直接贴原始代码

  今日给大家分享一下如何实现导航栏(nav)和内容部分上下联动。(前端小白自主研究,能用就用,不需要拉倒)。

一、实现过程:

       主要是使用 scroll-view 实现导航栏部分,onPageScroll()来获取滚动距离,配合uni.createSelectorQuery()获取相关内容的参数。

这里有几点是有必要注意一下的:

        scroll-view 标签必须加上行内样式 overflow:hidden;white-space:nowrap; 否则无法实现滑动效果;
        scroll-view 包裹的要滑动的盒子元素要让它们变成行内块级元素(display:inline-block;)进行横向排列;
        scroll-view 包裹的需要滑动的盒子元素使用 display:flex; 是不起作用(无效)的;
        scroll-view 包裹的需要滑动的盒子元素不能使用浮动。

二、废话不多说,直接上代码

   html部分

   js部分

     这部分是声明导航对应内容的距离初始值 

 

 

    这部分实现了点击导航栏时,内容滚动到对应部分。主要使用uni.pageScrollTo()实现这个功能。 

这部分是在页面渲染完成后获取每部分内容到屏幕顶部的距离,并且将距离赋值给之前声明的数据 

 

  省略部分代码逻辑相同,css部分就不上传了,毕竟所需样式不一样,自己根据需求设计即可。

注明:本人新手小白,代码有些冗余,希望各位根据自己需求来。 

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值