zoukankan      html  css  js  c++  java
  • 微信小程序 scroll-view 实现锚点跳转

    在微信小程序中,使用 scroll-view 实现长页面的标记跳转,官方文档中没有例子演示,锚点标记主要是使用<scroll-view> 的 scroll-into-view 属性。

    实现锚点跳转主要以下几点:

    1、最外层容器使用 scroll-view 

    2、赋值scroll-into-view,如:<scroll-view scroll-into-view="{{toView}}">

    3、设置 scroll-view 滚动方向 scroll-y="true"

    4、跳转到的位置使用 id (定位),如:<view id="mark1">

    .wxml代码 

    <view class="list">
        <view bindtap='jumpTo' data-opt="list0">list0</view>
        <view bindtap='jumpTo' data-opt="list11">list11</view>
        <view bindtap='jumpTo' data-opt="list29">list29</view>
    </view>
    
    
    <scroll-view  scroll-into-view="{{toView}}"  scroll-y="true"   scroll-with-animation="true"   class="scr">
        <view wx:for="{{list}}"  id="{{item}}"  class="test">
          {{item}}
        </view>
    </scroll-view>

    .wxss代码

    .scr{
        position: relative;
        height: 500rpx
    }
    .test{
        height: 80rpx;
    }
    .list{ position: fixed; z-index: 9; top:30rpx; right: 10rpx; }

    .js代码

      data: {
    
        list: ["list0", "list1", "list2", "list3", "list4", "list5", "list11", "list12", "list13", "list14", "list15", "list25", "list26", "list27", "list28", "list29","list30"],
        toView: ''
      },
    
      jumpTo: function (e) {
    
        // 获取标签元素上自定义的 data-opt 属性的值
        let target = e.currentTarget.dataset.opt;
    
        this.setData({
          toView: target
        })
    
      },

    小程序锚点跳转和HTML锚点跳转类似

    ps: 如果使用 html 实现锚点跳转,只需要使用 <a href="#id名"> 就能很方便的跳转到改元素的位置,id名就是对应要跳转的位置!

  • 相关阅读:
    MySQL高性能优化规范建议,速度收藏
    基于 debian 操作系统的 docker 镜像,安装 vim
    Vue 开发经验总结
    DNS 负载均衡
    图解:从单个服务器扩展到百万用户的系统
    defer、return、返回值,这三者的执行逻辑
    goroutine 知识点
    一条SQL语句在MySQL中如何执行的
    架构设计的常用方法
    vue中直接修改props中的值并未给出警告,为啥?
  • 原文地址:https://www.cnblogs.com/zxf100/p/8479547.html
Copyright © 2011-2022 走看看