微信小程序 scroll-view实现锚点滑动的示例

 更新时间:2017年12月06日 14:17:30   作者:TokenYang  
本篇文章主要介绍了微信小程序 scroll-view实现锚点滑动的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言

最近开始做小程序,通读一遍文档再上手并不算难,但不得不说小程序里还是有一些坑。这里说一下如何实现页面锚点跳转,一个城市列表的效果示意图如下:


因为在微信小程序的环境中不能想在浏览器里设置标签,或者操作dom滚动,传统做法就行不通了,一切都得按小程序的文档来。

一开始我们的做法是使用boundingClientRect()方法获取每个锚点的坐标,然后再用wx.pageScrollTo()方法滑动过去。结果发现效果不是很好,因为boundingClientRect方法返回的每个点的坐标会随着屏幕滑动而变化,可能还会引起页面抖动,最后还是选择scroll-view(可滚动视图区域)组件来实现锚点效果。

具体实现

具体API就不赘述了,可以去看官方文档,这里讲几个需要注意的地方,下面是一个示意的scroll-view组件代码,上面的几个属性是必须的:

复制代码 代码如下:

<scroll-view scroll-y style="height: 200px;" bindscroll="scroll" scroll-into-view="{{toView}}" >

scroll-into-view:这个绑定了一个属性,它的值应该是页面元素的id,设置它的值就可以跳转到ID对应的元素那里了。

scroll-y:添加这个属性标明是竖向滑动的,对应的scroll-x则表示横向滑动,竖向滑动时scroll-view必须设置一个固定的height

bindscroll:监听滑动,传给他一个事件,滑动时执行该事件

文档上给的属性特别多,暂时只需要上述几个就可实现我们想要的效果。实现原理也很简单,内容部分,每个英文简写的view设置一个id,然后在导航list那里点击时,就把scroll-into-view的值设置成点击的那个id即可实现跳转。

再说一下scroll-view的高度问题,这个一定要做适配的固定高度,不然在不同屏幕大小的手机上的显示效果有差异。

几点优化

到这里功能基本都实现了,但后面还发现一些问题:如果要隐藏scroll-view的滚动条,需要设置css样式:::-webkit-scrollbar

::-webkit-scrollbar {
 width: 0;
 height: 0;
 color: transparent;
}

还有就是点了一个锚点实现了跳转,这个时候你滚动页面再点之前点的锚点,页面就不会再跳转了,这个时候就需要监听滚动事件,滚动时将scroll-into-view属性的值清空。或者在每次锚点跳转后,再由一个异步操作将scroll-into-view属性的值清空。

2017/12/05补充:

scroll-view默认是无滑动动画的,需要滚动的动画效果需要在组件上设置:scroll-with-animation='true'
关于固定高度height的设置问题,一开始我以为这个高度和滚动元素的数目/高度有关,这个时候处理动态变化的列表就很麻烦。后面在网上看到的一个方法就是使用wx.getSystemInfo方法得到windowHeight,把这个设置为scroll-view的高度(单位为px)即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 手动实现js短信验证码输入框

    手动实现js短信验证码输入框

    本文记录一下自己手动实现的一个前端常见的短信验证码输入组件,从需求到实现逐步优化的过程。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • zTree插件之单选下拉菜单实例代码

    zTree插件之单选下拉菜单实例代码

    zTree插件之单选下拉菜单实例代码。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript定义变量和变量优先级问题探讨

    JavaScript定义变量和变量优先级问题探讨

    这篇文章主要介绍了JavaScript定义变量和变量优先级的问题探讨,变量的定义还有这么讲究吗,不错,看完本文相信你会有一定的收获,需要的朋友可以参考下
    2014-10-10
  • 一定有你会用到的JavaScript一行代码实用技巧总结

    一定有你会用到的JavaScript一行代码实用技巧总结

    这篇文章主要为大家介绍了一定有你会用到的JavaScript一行代码总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Javascript前端UI框架Kit使用指南之Kitjs简介

    Javascript前端UI框架Kit使用指南之Kitjs简介

    本文给大家简单介绍了一款优秀的Javascript前端UI框架--Kitjs,支持PC端以及手机开发领域,非常的全面,这里推荐给有需要的小伙伴。
    2014-11-11
  • 详解webpack3如何正确引用并使用jQuery库

    详解webpack3如何正确引用并使用jQuery库

    本篇文章主要介绍了详解webpack3如何正确引用并使用jQuery库,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • 学习使用bootstrap的modal和carousel

    学习使用bootstrap的modal和carousel

    这篇文章主要教大家学会用bootstrap的modal和carousel,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • JavaScript实现一个带AI的井字棋游戏源码

    JavaScript实现一个带AI的井字棋游戏源码

    这篇文章主要介绍了基于JavaScript实现一个带AI的井字棋游戏源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 如何正确理解javascript的模块化

    如何正确理解javascript的模块化

    模块化在项目中十分的重要,一个复杂的项目肯定有很多相似的功能模块,如果每次都需要重新编写模块肯定既费时又耗力。但是引用别人编写模块的前提是要有统一的“打开姿势”,如果每个人有各自的写法,那么肯定会乱套,下面介绍几种JS的模块化的规范。
    2017-03-03
  • JavaScript 五大常见函数

    JavaScript 五大常见函数

    在javascript前端开发中js函数问题经常会被讨论,这个问题仁者见仁智者见智,下面通过示例代码给大家介绍js五大常见函数,感兴趣的朋友一起看看吧
    2018-03-03

最新评论