<view class="VerticalBox"><scroll-view class="VerticalNav nav" scroll-y scroll-with-animation scroll-top="{{VerticalNavTop}}" style="height:calc(100vh)"><!-- 如果顶部有内容100vh-顶部高rpx --><view class="cu-item {{index==TabCur?'text-coffee cur':''}}" wx:for="{{publicitylist}}" wx:key="index" bindtap='tabSelect' data-id="{{index}}">{{item.theme}}</view></scroll-view><scroll-view class="VerticalMain" scroll-y scroll-with-animation style="height:calc(100vh)" scroll-into-view="main-{{MainCur}}" bindscroll="VerticalMain"><!-- 如果顶部有内容100vh-顶部高rpx --><view class="padding-lr-sm padding-top-sm" wx:for="{{publicitylist}}" wx:for-item="themelist" wx:key="index" id="main-{{index}}"><view class="text-black shadow bg-white"><view class='padding-sm solid-bottom bg-white text-coffee text-xl text-bold'><view class='action'>{{themelist.theme}} </view></view><block wx:for="{{themelist.list}}" wx:for-item="minglist" wx:key="index"><view class='padding-sm bg-white text-black solid-bottom' bindtap="goarticle"><view class="text-black" style="font-size: 30rpx;">{{minglist.drugname}}</view><view class="text-doublecut margin-tb-xs">{{minglist.title}}</view><view class="text-sm text-grey bg-white"><block wx:if="{{minglist.fullname}}">{{minglist.fullname}}|</block>名医名方</view></view></block></view></view><view style="padding-top: 400rpx;"></view></scroll-view></view>
data: {TabCur: 0,//左边导航默认位置MainCur: 0,//右边导航默认位置VerticalNavTop: 0,//列表默认高度load: true,//右边导航滑动定位左边publicitylist:[//每个数据给个id用于右边导航给左边定位{id:0,theme:'名医名方',list:[{drugname:'1资生汤',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书'},{drugname:'1资生汤2',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:''},{drugname:'1资生汤3',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'1资生汤4',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},]},{id:1,theme:'授课手书',list:[{drugname:'2资生汤',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书'},{drugname:'2资生汤2',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'2资生汤3',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'2资生汤4',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},]},{id:2,theme:'临证医案',list:[{drugname:'3资生汤',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书'},{drugname:'3资生汤2',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'3资生汤3',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'3资生汤4',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},]},{id:3,theme:'手书',list:[{drugname:'3资生汤',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书'},{drugname:'3资生汤2',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'3资生汤3',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},{drugname:'3资生汤4',title:'由各种物质组成的巨型球状天体,叫做星球。星球有一定的形状,有自己的运行轨123456',fullname:'王会书2'},]},],},tabSelect(e) {//左边导航按钮this.setData({TabCur: e.currentTarget.dataset.id,MainCur: e.currentTarget.dataset.id,VerticalNavTop: (e.currentTarget.dataset.id - 1) * 50//左边导航内容距离顶部位置})},VerticalMain(e) {//右边导航滑动事件let that = this;let list = this.data.publicitylist;let tabHeight = 0;if (this.data.load) {for (let i = 0; i < list.length; i++) {let view = wx.createSelectorQuery().select("#main-" + list[i].id);//如果在子组件里面会获取不到高,要加.in(this)来指定范围。//let view = wx.createSelectorQuery().in(this).select("#main-" + list[i].id);view.fields({size: true}, res => {list[i].top = tabHeight;tabHeight = tabHeight + res.height;list[i].bottom = tabHeight;}).exec();}that.setData({load: false,publicitylist: list})}let scrollTop = e.detail.scrollTop + 20;for (let i = 0; i < list.length; i++) {if (scrollTop > list[i].top && scrollTop < list[i].bottom) {console.log();that.setData({VerticalNavTop: (list[i].id - 1) * 50,//左边导航内容距离顶部位置TabCur: list[i].id})return false}}},
/* 下面是左边的导航代码,右边的导航内容可以直接写 */.VerticalNav.nav {width: 200rpx;white-space: initial;}.VerticalNav.nav .cu-item {width: 100%;text-align: center;background-color: #fff;margin: 0;border: none;height: 100rpx;line-height: 100rpx;position: relative;}.VerticalNav.nav .cu-item.cur {background-color: #f1f1f1;}.VerticalNav.nav .cu-item.cur::after {content: "";width: 8rpx;height: 30rpx;border-radius: 10rpx 0 0 10rpx;position: absolute;background-color: currentColor;top: 0;right: 0rpx;bottom: 0;margin: auto;}.VerticalBox{display: flex;}.VerticalMain{background-color: #f1f1f1;}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号