iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序实现锚点定位功能的方法实例
  • 309
分享到

微信小程序实现锚点定位功能的方法实例

2024-04-02 19:04:59 309人浏览 薄情痞子
摘要

前言 在小程序开发中,我们经常会遇到滚动列表查看的需求,那么使用锚点定位来实现可以达到交互体验更加友好的效果,我们看下项目中实现的效果:    &nbs

前言

小程序开发中,我们经常会遇到滚动列表查看的需求,那么使用锚点定位来实现可以达到交互体验更加友好的效果,我们看下项目中实现的效果:

            

功能实现

采用小程序视图容器组件实现:scroll-view

这里需要注意的是,竖向滚动时,scroll-view需要指定一个固定高度,我们看下WXML代码:


<scroll-view style="height:{{autoHeight}};" scroll-y scroll-into-view="{{toView}}" class="scroll-warp" scroll-with-animation="{{true}}" bindscroll="handelScroll">
   <block wx:for="{{dataList}}" wx:key="{{index}}">
      <view class="floorType" id="{{item.floor}}">
     </view>
   </block>
</scroll-view>

这里autoHeight是根据不同机型的高度动态计算出来的,scroll-view有个重要属性:scroll-into-view,它接收一个string值,即为滚动的地点(锚点),那么我们需要在scroll-view子节点也设置相应的锚点列表:如上图的class=floorType节点中的id属性。这样我们的滚动就有了一一对应的关系了,在筛选块点击楼层,将toView变量设置成对应的数据,列表也会滚动到对应的位置。
当我们滚动列表的时候,顶部的高亮筛选项也需要对应切换,那这个时候怎么办呢?

我们可以在bindscroll此事件上做文章:滚动列表的时候会触发此事件。

关键代码:


handelScroll(e) {
        let scrollTop=e.detail.scrollTop;
        let scrollArr= this.data.anchorArray;
        if(scrollTop>=scrollArr[scrollArr.length-1]-this.data.autoHeight){
                return;
          }else {
              for(let i=0;i<scrollArr.length;i++){
                    if(scrollTop>=0&&scrollTop<scrollArr[0]){
                    // selectFloorIndex控制筛选块高亮显示
                        this.setData({
                            selectFloorIndex: 0
                        });
                    }else if(scrollTop>=scrollArr[i-1]&&scrollTop<scrollArr[i]) {
                        this.setData({
                            selectFloorIndex: i
                        });
                 }
             }
         }
    }

这里的anchorArray为所有锚点块所占页面高度的数组总和,用图可以看得更加清晰一点:

每个锚点块都有一个固定的高度,我们在拿到数据渲染完页面后,可以通过
boundinGClientRect方法拿到类名为floorType各个节点的高度,并将这些高度装进anchorArray数组中,那么当我们滚动超过某块锚点高度之后,顶部筛选项也会随之切换到下一个。

关键代码:


            let query = wx.createSelectorQuery().in(this);
            let heightArr =[];
            let h = 0;
            query.selectAll('.floorType').boundingClientRect((React)=>{
                react.forEach((res)=>{
                    h+=res.height;
                    heightArr.push(h)
                })
                this.setData({
                    anchorArray:heightArr
                });
            }).exec();

到这里,我们的锚点定位滚动已完成,希望能对大家有所帮助,如有问题,欢迎沟通指出!

总结

到此这篇关于微信小程序实现锚点定位功能的文章就介绍到这了,更多相关微信小程序锚点定位内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序实现锚点定位功能的方法实例

本文链接: https://www.lsjlt.com/news/130703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序实现锚点定位功能的方法实例
    前言 在小程序开发中,我们经常会遇到滚动列表查看的需求,那么使用锚点定位来实现可以达到交互体验更加友好的效果,我们看下项目中实现的效果:    &nbs...
    99+
    2022-11-12
  • 微信小程序怎么实现锚点定位功能
    这篇“微信小程序怎么实现锚点定位功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现锚点定位功能”文章吧。实...
    99+
    2023-06-08
  • 微信小程序如何实现锚点定位功能
    这篇文章将为大家详细讲解有关微信小程序如何实现锚点定位功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言在小程序开发中,我们经常会遇到滚动列表查看的需求,那么使用锚点定位来实现可以达到交互体验更加友好...
    99+
    2023-06-20
  • vue实现锚点定位功能的方法
    这篇文章主要讲解了“vue实现锚点定位功能的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue实现锚点定位功能的方法”吧!本文实例为大家分享了vue实现锚点定位的具体代码,供大家参考,...
    99+
    2023-06-20
  • 微信小程序地图定位的实现方法实例
    目录前言方法如下总结:前言 地图定位这个功能大家都很熟悉吧,那微信小程序中要怎么实现地图定位呢,其实非常简单,没有大家想象中那么难,看完本篇文章,你也可以轻松实现这个小功能哦。 方法...
    99+
    2022-11-13
  • 微信小程序中scroll-view实现锚点滑动的方法
    这篇文章主要介绍微信小程序中scroll-view实现锚点滑动的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!示意图如下:因为在微信小程序的环境中不能想在浏览器里设置标签,或者操...
    99+
    2022-10-19
  • 使用微信小程序实现地图定位功能
    使用微信小程序实现地图定位功能微信小程序作为一种轻量级的应用程序,提供了丰富的能力,其中地图定位功能是许多小程序开发者常常需要使用的。本文将介绍如何使用微信小程序来实现地图定位功能,并给出具体的代码示例。一、准备工作在开始编写代码之前,我们...
    99+
    2023-11-21
    微信小程序 实现功能 地图定位
  • 微信小程序地图定位功能怎么实现
    本篇内容主要讲解“微信小程序地图定位功能怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序地图定位功能怎么实现”吧!方法如下首先呢你要有一个方法去触发这个点击事件,下面已经写好啦,...
    99+
    2023-06-30
  • 微信小程序点击实现样式切换功能的方法
    本篇内容主要讲解“微信小程序点击实现样式切换功能的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序点击实现样式切换功能的方法”吧!普通的web开发可以通过JavaScript获取HT...
    99+
    2023-06-26
  • 微信小程序如何实现定位到当前城市功能
    这篇文章给大家分享的是有关微信小程序如何实现定位到当前城市功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序 定位到当前城市首先需要申请百度地图Geocoding AP...
    99+
    2022-10-19
  • 小程序通过小程序云实现微信支付功能实例
    目录一、开通微信支付 1.1 关联商户号1.2 添加商户号1.3 管理员授权二、云函数开发2.1 新建云函数2.2 云函数代码2.3 云函数上传并部署三、小程序调用3.1 ...
    99+
    2022-11-12
  • vue+element ui实现锚点定位的方法
    本篇内容主要讲解“vue+element ui实现锚点定位的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue+element ui实现锚点定位的方法”吧!本文实例为大家分享了vue + ...
    99+
    2023-06-20
  • 微信小程序图片压缩功能的实现方法
    微信小程序图片压缩功能的实现方法 :1、在 wx.chooseImage 接口选择相机图片。2、在 wx.getImageInfo 接口获取图片信息。3、计算压缩比例和最终图片的长宽。4、创建 canvas 绘制最终图片。5、在 wx.ca...
    99+
    2022-10-07
  • 微信小程序图片上传功能的实现方法
    目录前言首先是静态布局和样式部分下面是js的部分,我已详细备注~~~总结前言 最近做了个小程序,涉及到了图片上传的功能,今天给大家详细介绍下如何实现小程序图片上传,话不多说先上代码 ...
    99+
    2022-11-13
  • 微信小程序中如何实现导航栏滑动定位功能
    这篇文章给大家分享的是有关微信小程序中如何实现导航栏滑动定位功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现的效果实现的原理1. 通过对scroll的监听获取滚动条的scr...
    99+
    2022-10-19
  • 微信小程序实现书架小功能
    本文实例为大家分享了微信小程序实现书架功能的具体代码,供大家参考,具体内容如下 实现书架的功能,点击之后可以看pdf 1.设定点击事件 2.在点击事件里面 2.1下载 wx.down...
    99+
    2022-11-13
  • 微信小程序实现翻牌小功能
    本文实例为大家分享了微信小程序翻牌小功能,供大家参考,具体内容如下 页面 <view id="container">     <view wx:for="{{new...
    99+
    2022-11-13
  • 微信小程序实现分页功能
    本文实例为大家分享了微信小程序实现分页的具体代码,供大家参考,具体内容如下 今天被提了个需求,需要小程序上实现分页,搜索能力不行,没找到demo,自己想了一下逻辑然后,就自己写了,不...
    99+
    2022-11-13
  • 微信小程序实现答题功能
    本文实例为大家分享了微信小程序实现答题功能的具体代码,供大家参考,具体内容如下 view <view class="topnav">   <image src="...
    99+
    2022-11-13
  • 微信小程序实现拍照功能
    小程序实现一个拍照功能,亲测可用。 页面的样式都是我自己写的,当然你们也可以自己排版写样式。下面一共有三个按钮,返回按钮、拍照按钮、切换摄像头按钮。 首先相机页面是通过wx:if来...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作