微信小程序设置锚点定位,wx.pageScrollTo

这篇具有很好参考价值的文章主要介绍了微信小程序设置锚点定位,wx.pageScrollTo。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序中使用 wx.pageScrollTo({)};进行页面锚点定位,一定要将根目录设置为滑动的根据。

也就是 page 要设置样式为 overflow-y: auto;指定他的高度。
在其中,设置一个容器 home 设置id。
在添加一个内容容器 container 设置类名。
设置多个锚点,添加锚点类型 如: node0, node1, node2 等。
然后通过点击事件传递要跳转的锚点信息。

通过wx.createSelectorQuery().select(类名).boundingClientRect(res => {}),, 获取锚点中的数据。
在通过wx.createSelectorQuery().select(“#home”).boundingClientRect(res => {}), 获取设置的根(整个滑动的元素)锚点home。
在这里不能直接获取跟元素 page ,只能获取当前组件的根元素,也就是home。
在通过wx.pageScrollTo({ selector: “.container”, scrollTop: 滑动的距离 });就可以滑动到锚点。

看不懂的看代码, (通过 vue3.0 + ts + vite 创建的uni-app 项目)文章来源地址https://www.toymoban.com/news/detail-532596.html

page {
	width: 100%;
    height: 100vh;
    display: block;
    overflow-y: auto;  /* 重点 */
    overflow-x: hidden;
    box-sizing: border-box;
}
<view id="home">
	<view class="container">
		<!-- 内容 锚点点击事件 -->
		<view v-for="(item, index) in data" :key="index" @click="jump(item, index)"></view>
		<!-- 锚点 -->
		<view class="node0"></view>
		<view class="node1"></view>
		<view class="node2"></view>
	</view>
</view>
let data = ["1","2","3","4"],

const jump = (row: any, index: number): void => {
	let className = String('.node' + index);
    uni.createSelectorQuery().select(className).boundingClientRect((con: any) => { // 获取点击要跳转的锚点信息
        uni.createSelectorQuery().select("#home").boundingClientRect((res: any) => { // 获取根元素要滑动的元素
            uni.pageScrollTo({
                selector: "#home",  // 滑动的元素
                // duration: 1500, //过渡时间
                scrollTop: con.top - res.top, //到达距离顶部的top值
            });
        }).exec();
    }).exec();
});

到了这里,关于微信小程序设置锚点定位,wx.pageScrollTo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 wx:if使用

    在微信小程序中,可以使用 wx:if 指令来控制某个元素是否需要被渲染到页面上。根据条件表达式的结果, wx:if 指令决定元素是否显示。 下面是使用 wx:if 的基本示例: 在上述代码中, wx:if 指令的值为一个条件表达式 {{condition}} ,根据该条件表达式的结果决定是否渲染 view 元

    2024年02月09日
    浏览(50)
  • 微信小程序-支付(wx.requestPayment)

    (学习中,持续更新) 直接调用的接口为wx.requestPayment(小程序前端调用)。 官方文档的请求例子为: 其中paySign官方文档给出了一个例子: MD5(appId=wxd678efh567hg6787nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VSpackage=prepay_id=wx2017033010242291fcfe0db70013231072signType=MD5timeStamp=1490840662key=qazwsxedcrfvtg

    2024年02月12日
    浏览(37)
  • 微信小程序本地存储(wx.setStorage)和(wx.setStorageSync)

     在微信小程序中,可以使用本地存储来保存一些数据比如用户状态,姓名,性别等; 本地存储主要包括两种方式:缓存和本地数据存储。 缓存 缓存是一种快速访问内存的临时存储机制,可以有效地提高应用程序的响应速度。在微信小程序中,可以使用 wx.setStorage 方法和

    2023年04月18日
    浏览(94)
  • uniapp tab切换及tab锚点效果(兼容wx小程序及H5端)

    效果如下 H5端 H5端tab切换及tab锚点效果 小程序端 小程序端tab切换及tab锚点效果 代码实现-重要几点 渲染页面循环数组时,每一个item都需要给不重复的id tab使用uviewUI库实现的,list值里面每一个元素也需要给上id值。如[‘1-20’,‘21-40’,…],那么21-40给的是第21个item的id。 这里

    2024年02月03日
    浏览(42)
  • 微信小程序如何实现兼容----wx.getSystemInfoSync、 wx.getSystemInfo、wx.canIUse

    小程序的宿主环境一直在迭代更新,提供更多的能力给开发者去完成更多的事情,所以你的小程序会运行在不同版本的宿主环境下。为了让你的小程序在不同环境下都能提供相应的服务,我们需要来了解一下在小程序中如何实现兼容办法。 1.针对不同手机进行程序上的兼容

    2024年02月09日
    浏览(49)
  • 微信小程序wx:for 的使用以及wx:key绑定

    wx:for基本使用 wx:for-item和wx:for-index重新命名item和index wx:key两种绑定方式以及注意事项 wx:for基本使用 业务层数据 视图层 wx:for遍历时候每一项名称为 item 每一项索引名称为 index wx:for-item和wx:for-index实现item和index重命名 wx:for-item=\\\"str\\\" 将原来名称 item 修改成 str wx:for-index=\\\"i 将原来

    2024年02月11日
    浏览(78)
  • 【微信小程序】列表渲染wx:for

    🏆今日学习目标:第十二期——列表渲染wx:for 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:20分钟 🎉专栏系列:我的第一个微信小程序 哈喽大家好,本期是微信小程序专栏第十二期,本期我们将学习列表渲染wx:for。 注意:每期内容是连载呢,建议大家

    2024年02月08日
    浏览(52)
  • 微信小程序wx.setClipboardData复制文本

    今天在开发中遇到一个问题,在小程序中 复制文本,在做之前也查了资料,大部分都是固定文本复制,(小程序本身是不能手动复制的)和需求还是不一样的。 对于复制官方文档中提供了: wx.setClipboardData 设置系统剪贴板的内容。调用成功后,会弹出 toast 提示\\\"内容已复制

    2024年02月09日
    浏览(43)
  • 微信小程序封装wx.request请求

    对微信小程序的印象我还停留在2年前刚入行的时候,那是还不懂什么是Promise,只知道小程序发请求有时候要在success回调中嵌套好多层(后来我才知道这叫 回调地狱 )。最近刚好有个小程序的项目交给我发开发,加上如今的我自认为对Promise掌握的还可以,所以这次也尝试着封

    2024年02月16日
    浏览(45)
  • 微信小程序wx.getUserProfile的用法

    接触了以前开发的一个微信小程序,发现wx.getUserInfo这个官方接口不能获取用户的信息,我重新创建了一个新的项目,发现可以用wx.getUserProfile这个官方接口来获取用户信息,具体操作如下:1.首先在xxxx.jslim里面定义初始值,isAuthorization是为了解决每次登陆都需要获取用户信息

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包