本文实例为大家分享了微信小程序实现锚点跳转的具体代码,供大家参考,具体内容如下
1、先上效果图,看看是不是你想要的。
2、主要用到的微信小程序的scroll-view 组件实现该效果。核心主要是使用scroll-into-view属性跳转对应的标签页和标签内容区域和bindscroll事件监听标签内容区域距离页面顶部的距离来判断顶部的标签应该处于哪个标签。
3、wxml代码:
<!-- start 标签区域 --> <view class="text" style="height:{{height}}px " > <!-- scroll-into-view 可以跳转到绑定值对应的ID的标签区域 --> <scroll-view class='scroll-x-view1' scroll-x='true' scroll-into-view='{{indexMaodian}}'> <view bindtap="toDetail" data-id="a1" class='scroll-view-item1 bg_red' id="a" >1标签</view> <view bindtap="toDetail" data-id="b1" class='scroll-view-item1 bg_blue' id="b">2标签</view> <view bindtap="toDetail" data-id="c1" class='scroll-view-item1 bg_green' id="c">3标签</view> <view bindtap="toDetail" data-id="d1" class='scroll-view-item1 bg_yellow' id="d">4标签</view> <view bindtap="toDetail" data-id="e1" class='scroll-view-item1 bg_red' id="e">5标签</view> </scroll-view> <!-- end 标签区域 --> <!-- start 标签对应内容区域 --> <scroll-view class='scroll-x-view' scroll-y='true' bindscroll="onPageScroll" scroll-into-view='{{storeDetail}}'> <view class='scroll-view-item bg_red' id="a1">1标签对应内容区域</view> <view class='scroll-view-item bg_blue' id="b1">2标签对应内容区域</view> <view class='scroll-view-item bg_green' id="c1">3标签对应内容区域</view> <view class='scroll-view-item bg_yellow' id="d1">4标签对应内容区域</view> <view class='scroll-view-item bg_red' id="e1">5标签对应内容区域</view> </scroll-view> <!-- end 标签对应内容区域 --> </view>
4、wxss代码:
.text{ width: 100%; display: flex; flex-direction: column; } .scroll-x-view { width: 100%; display: flex; flex: 1; } .scroll-x-view .scroll-view-item { margin-top: 50rpx; width: 750rpx; height: 800rpx; display:inline-block; } .bg_red { background: lightpink; } .bg_blue { background: lightblue; } .bg_green { background: lightgreen; } .bg_yellow { background: lightyellow; } .scroll-x-view1 { width: 100%; height: 100rpx; white-space: nowrap; } .scroll-x-view1 .scroll-view-item1 { width: 400rpx; height: 100rpx; display:inline-block; }
5、js代码:
Page({ /** * 页面的初始数据 */ data: { // 标签锚点跳转值 indexMaodian: 'a', // 标签详情内容锚点跳转 storeDetail: 'a1' }, // 监听页面滑动距离 onPageScroll(e) { // 通过滑动的距离判断页面滑动那个区域让后让顶部的标签栏切换到对应位置 var height = Number(e.detail.scrollTop) if (height <= 400) { // 滑到1区域 this.setData({ indexMaodian: 'a' }); } else if (height > 400 && height<= 800) { // 滑到2区域 this.setData({ indexMaodian: 'b' }); } else if (height > 800 && height <= 1200) { // 滑到3区域 this.setData({ indexMaodian: 'c' }); } else if (height > 1200 && height <= 1600) { // 滑到4区域 后面难得写了,以此类推即可 this.setData({ indexMaodian: 'd' }); } }, // 跳转到对应的标签详情内容区 toDetail(e) { let id = e.target.dataset.id this.setData({ storeDetail: id }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var systemInfo = wx.getSystemInfoSync(); var windowHeight = systemInfo.windowHeight; // 拿到导航栏以下可视区域的高度 this.setData({ height: windowHeight }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
微信小程序,锚点跳转
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“微信小程序实现锚点跳转”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
2024年12月26日
2024年12月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]