小程序锚点定位(通讯录)

1.使用视图容器组件scroll-view

2.在scroll-view中设置属性scroll-into-view,属性值为锚点id

3.在需要的位置设置锚点ID值,点击后将scroll-into-view设置为对应的id即可跳转

示例:名字列表定位

 wxml

<scroll-view 
    class="list" 
    style="height: {{listHeight}}rpx" 
    scroll-into-view="{{toView}}" 
    scroll-y="true"
>
    <block 
        wx:for="{{letter}}" 
        wx:key="index" 
        wx:for-item="letter" 
        wx:for-index="index0"
    >
        <view 
            class="list-letter" 
            id="{{letter}}"
        >{{letter}}</view>
        <view class="list-card">
            <view 
                class="item" 
                wx:for="{{studentList[letter]}}" 
                wx:key="index" 
                wx:for-item="student" 
                wx:for-index="index1"
            >
                <image 
                    class="avatar" 
                    src="{{student.avatarurl}}" 
                    bindtap="s_clickStudent" 
                    data-item="{{student}}"
                ></image>
                <view class="name">
                    <view class="name-text">
                        {{student.real_name || student.nickname}}
                    </view>
                    <view class="name-time">{{student.created_at}}加入</view>
                </view>
                <view bindtap="delete" data-student-id="{{student.student_id}}" class="wrapper">
                    <text wx:if="{{!readyToBind}}" data-student-id="{{student.student_id}}" class="delete">删除</text>
                </view>
            </view>
        </view>
    </block>
    <view class="letter-right">
        <block wx:for="{{letter}}" wx:key="index">
            <view 
                class="letter-text {{toView==item && 'sel'}}" 
                bind:tap="goView"
                data-letter="{{item}}"
            >{{item}}</view>
        </block>
    </view>
</scroll-view>

js

Page({
  data: {
    studentList: [],
    toView: "",
  },
  onLoad(options) {},
  onShow() { },
   goView(e) {
    const { letter } = e.target.dataset;
    this.setData({
      toView: letter,
    });
  },
});

注意点:

1. scroll-y="true”需要放在scroll-into-view之后

2.scroll-into-view的属性值只支持字母、数字、下划线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值