当前位置: 首页 > 编程笔记 >

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

于捷
2023-03-14
本文向大家介绍微信小程序 scroll-view实现锚点滑动的示例,包括了微信小程序 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)即可。

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

 类似资料:
  • 本文向大家介绍微信小程序 scroll-view 实现锚点跳转功能,包括了微信小程序 scroll-view 实现锚点跳转功能的使用技巧和注意事项,需要的朋友参考一下 在微信小程序中,使用 scroll-view 实现长页面的标记跳转,官方文档中没有例子演示,锚点标记主要是使用<scroll-view> 的 scroll-into-view 属性。   实现锚点跳转主要以下几点:   1、最外层容

  • 本文向大家介绍微信小程序scroll-view锚点链接滚动跳转功能,包括了微信小程序scroll-view锚点链接滚动跳转功能的使用技巧和注意事项,需要的朋友参考一下 html  js  css  总结 以上所述是小编给大家介绍的微信小程序scroll-view锚点链接滚动跳转功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持! 如

  • 问题描述 需求想要展示自定义横向滚动条,但是用sroll-view发现无法显示滚动条,一开始不加scroll-view, 只有一层view,设置overflow-x:scroll, 也是可以滚动但是不显示滚动条。在开发者工具和真机调试都不显示。平时比较少写小程序,麻烦大佬解答一下。 wxml: wxss:

  • 本文向大家介绍微信小程序 scroll-view 水平滚动实现过程解析,包括了微信小程序 scroll-view 水平滚动实现过程解析的使用技巧和注意事项,需要的朋友参考一下 1. scroll-view水平滚动使用 1. wxml 2. wxss 2. scroll-view 隐藏滚动条 3. 效果如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍微信小程序 scroll-view隐藏滚动条详解,包括了微信小程序 scroll-view隐藏滚动条详解的使用技巧和注意事项,需要的朋友参考一下 一:scroll-view隐藏滚动条 在书写网页的时候,往往会为了页面的美观,而选择去掉滚动区域默认的滚动条,而在这里,就是为小程序去掉滚动条的其中的一种方法: scroll-view.wxml: scroll-view.wxss scro

  • 本文向大家介绍小程序scroll-view组件实现滚动的示例代码,包括了小程序scroll-view组件实现滚动的示例代码的使用技巧和注意事项,需要的朋友参考一下 前言:这章我们使用小程序的 scroll-view组件 实现横向滚动和竖向滚动。 GitHub: https://github.com/Ewall1106/miniProgramDemo 1、竖向滚动 首先从简单的来,竖向滚动很简单,只