微信小程序实现跳转到tabbar页面的指定位置

微信小程序怎么用js实现从tab页面A跳转到另一tab页面B中的某个盒子上(注:跳转动态路径。如下:)
希望详细一点,怕看不懂。

图一、页面A

img

图二、页面A的wxml

img

图三、页面B的wxml

img

img

index页面

<view>
  <view
    wx:for="{{list}}"
    wx:key="index"
    data-item="{{item}}"
    class="list-item"
    bindtap="toImage">
    跳转到tab上指定图片{{item.code}}</view>
</view>
const app = getApp()

Page({
  data: {
    list: [
      { code: 1, name: '给梵蒂冈法国广泛大概' },
      { code: 2, name: '官方哥特人特多' },
      { code: 3, name: '风格非常vv现场v的' }
    ]
  },
  // 点击跳转
  toImage(e) {
    // switchTab不支持传参,我们这里通过globalData来传递
    const { item } = e.currentTarget.dataset
    app.globalData.imgCode = item.code
    wx.switchTab({
      url: `/pages/my/index`
    })
  }
})

my页面

<scroll-view class="wrap" style="height: 100vh;" scroll-y scroll-into-view="{{imgContainer}}" scroll-with-animation>
  <view
    wx:for="{{imgList}}"
    wx:key="index"
    id="img_{{item.code}}"
    class="img-item">
    图片{{item.code}}
  </view>
</scroll-view>
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    imgList: [
      { code: 1, url: '' },
      { code: 2, url: '' },
      { code: 3, url: '' }
    ],
    imgContainer: ''
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    const { imgCode } = app.globalData
    const imgContainer = imgCode ? `img_${imgCode}` : null
    this.setData({
      imgContainer
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    // 离开清空
    app.globalData.imgCode = null
  },
})

直接带参数转跳到b页面
再由b页面判断参数是否要打开盒子


wx.switchTab({
          url: 'url',
        })

先跳转到tabbar页面然后利用滚动方法滚动到要展示的位置

微信小程序页面主要分为tabbar页面和应用内页面,这两种页面的跳转方式不同
tabBar 是底部导航栏页面,如下图

img


在app.json中的配置如下:

img


跳转方式如下

img


也可以用 navigator 跳转,需要设置 open-type="switchTab"

img

  1. 使用scroll-view组件进行滚动控制
  2. 获取指定盒子的位置,小程序使用 wx.createSelectorQuery && wx.createSelectory(),获取 dom 操作实例,由query.select(#${id}).boundingClientReact((rect)=>{
    //rect.top 就是你要的元素的位置
    }).exec()
  3. 设置scroll-view上的scroll-top属性值为rect.top
    补充:你在另一个页面点击元素后要保存对应的信息用作匹配,跳转后也需要等待页面数据获取完毕,再进行滚动操作。

各位,是跳转到swiper-item里面,不是scroll-view哦