美文网首页
小程序笔记1 - 实现锚点定位

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

作者: 程序员卡诺 | 来源:发表于2018-09-30 03:14 被阅读347次

    在小程序中要实现锚点定位,需要使用到组件 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 - 实现锚点定位

          本文链接:https://www.haomeiwen.com/subject/jyeioftx.html