小程序笔记1 - 实现锚点定位

在小程序中要实现锚点定位,需要使用到组件 scroll-view

点击查看 scroll-view 组件官网文档

需要用到的是 scroll-into-view 这条属性,这条属性的官网解释是这样的:

scroll-into-view String
值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素

于是乎,我们只需要给 scroll-view 内要跳转的 view 设置上 id,然后给 scroll-into-view 传入要跳转的 viewid 就行了

*注意:赋值时不能用等号 = 赋值,要使用 this.setData() 赋值,否则重复赋相同的值时不会跳转

点我查看微信小程序代码片段 wechatide://minicode/4OI2oNmQ722U

以下是源码(和代码片段的一样)

wxml

<view class="btn_jump">
  <view class='btn_item' bindtap='jumpTo' data-opt="item0">ToItem0</view>
  <view class='btn_item' bindtap='jumpTo' data-opt="item11">ToItem11</view>
  <view class='btn_item' bindtap='jumpTo' data-opt="item29">ToItem29</view>
</view>

<scroll-view class="jump_list"
    scroll-into-view="{{toView}}" 
    scroll-y="true" 
    scroll-with-animation="true" >
  <view wx:for="{{30}}" wx:key="{{item}}"
      id="item{{item}}" class="list_item" >
      {{item}}
  </view>
</scroll-view>

wxs

Page({
  data: {
  },
  onLoad: function () {
  },
  jumpTo:  function (e) {
    // 获取标签元素上自定义的 data-opt 属性的值
    let target = e.currentTarget.dataset.opt;
    this.setData({
        toView: target
    })
  }
})

wxss

page {
  height: 100%;
}
.btn_jump {
  position: fixed;
  z-index: 9;
  top: 30rpx;
  right: 10rpx;
}
.btn_jump .btn_item {
  border: 1rpx solid #aaa;
  margin-bottom: 30rpx;
}
.jump_list {
  position: relative;
  height: 100%;
}
.list_item {
  height: 80rpx;
}
.list_item:nth-of-type(even) {
  background: #f8f8f8;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • 活着呢,还是活着呢?这是个问题。 看到了早上照常升起的太阳,伸个懒腰,庸庸碌碌得一天又开始了。其实我的工作非常有意...
    遁逸阅读 221评论 2 1
  • 图文/水抹微云 屋前的春水,是你期盼的眼睛。 谁在故乡的小路上禹禹独行? 人生的路口,何去何从。 我愿站成一棵树,...
    水抹微云阅读 390评论 8 11
  • Coach Shane's E cubed A. 380- no pun intended B. 382- to ...
    西言嘻语阅读 191评论 1 0
  • 昨天,本是开心的一天,因为孩子考完试就可以放假了。可是,却发现了一起惊险的事件,到现在,我都还心存余悸。 事情的起...
    锁心爱阅读 265评论 0 1