tingyuxuan2302 / taro3-virtual-list

基于taro3封装的虚拟列表,对列表节点不等高以及白屏等问题支持友好,无计算量,性能优异,支持各大小程序以及h5页面
MIT License
190 stars 26 forks source link

是否支持滚动定位到某元素位置? #4

Open XuChunxiao opened 3 years ago

XuChunxiao commented 3 years ago

进入列表需要定位到某元素位置,是否有API支持index值滚动定位?

tingyuxuan2302 commented 3 years ago

进入列表需要定位到某元素位置,是否有API支持index值滚动定位?

暂不支持,非常好的建议,最近有点忙,后期找时间会加入该需求🤝

GrapevineLin commented 3 years ago

同求,支持

mdddj commented 3 years ago

+1

wiscgazf commented 2 years ago

+1 哈哈~

我还试了通过scrollIntoView 属性 定位到指定的item,但是发现超过10 就会被分割成一个page,然而设置的item组件容器的id 在scroll-view组件中必须是根容器才能识别 外层包裹page后 没法跟踪 估计没法通过scrollInto的方式定位 得换一种方式定位当前page是第几个 加上前面的page页高度 在设置scrollTop的value了

17 commented 2 years ago

入侵比较少,方法比较脏,需要约定,但是最终能勉强实现效果。

    this.props.refs.current = {
      scrollTo: (i) => {
        this.setState({
          scrollTop: i == 0 ? i + Math.random() : i
        })
      },
      scrollToIndex: (index) => {
        const { segmentNum } = this.props
        const pageIndex = 0 ^ index / segmentNum
        this.setState({
          scrollIntoView: `wrap_${pageIndex}`
        })
        setTimeout(() => {
          this.setState({
            scrollIntoView: `item_${index}`
          })
        }, 10)
      }
    }

比较好的方法就是 查询高度的时候顺便查询子元素高度制作成 Map 。

syx112233 commented 8 months ago

同求