微信小程序实现锚点跳转
作者:左眼皮一直跳 发布时间:2024-08-31 01:27:26
标签:微信小程序,锚点跳转
本文实例为大家分享了微信小程序实现锚点跳转的具体代码,供大家参考,具体内容如下
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 () {
}
})
来源:https://blog.csdn.net/supperi/article/details/109841429


猜你喜欢
- 本文实例讲述了PHP简单检测网址是否能够正常打开的方法。分享给大家供大家参考,具体如下:这是一个检测网址是否能正常打开的PHP代码,通过下面
- 二级域名的解析指向ASP源代码,懂程序的人一看就明白怎么实现了。呵呵!真简单<%@ LANGUAGE =&nb
- 在一些问答平台,经常会遇到一类关于Python的问题:“学习Python,应该选择哪款开发工具?”如果,对于有一定经验的开发者而言,肯定会对
- <% '#######以下是一个类文件,下面的注解是调用类的方法#########################
- 本文实例讲述了python 函数的缺省参数使用注意事项。分享给大家供大家参考,具体如下:python的函数支持4种形式的参数:分别是必选参数
- 通过前面内容的介绍,我们对 Surface 对象有了大体上的认识。Pygame 针对文本、图像、颜色提供了不同模块来生成它们各自的 Surf
- 0 环境Python版本:3.6.8系统版本:macOS MojavePython Jupyter Notebook1 引言七月了,大家最近
- 几个月来好像就现在暂时无需求,稍微轻松一下,然后在Q群中发现有人提问,怎么用CSS实现数学公式“四又二分之一”。对于这个公式个人
- 一、前置知识1.1 语料库(Corpus)太长不看版: NLP任务所依赖的语言数据称为语料库。详细介绍版: 语料库(Corpus,复数是Co
- 前言文件和目录操作是很常见的功能,这里做个简单的总结,包括注意事项和实际的实现代码,基本日常开发都够用了目录操作判断目录或是文件是否存在os
- 安装并导入模块打开命令行窗口,输入:pip install -i https://mirrors.aliyun.com/pypi/simpl
- 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程
- 我们一般在调试程序的时候,有些操作会莫名地失败,又没有错误消息提示,特别是在执行数据库操作的时候,明明执行过去了,可就是数据库里没有记录变动
- 哦,这就是真正牛X的程序员。不过,他也仅仅是牛X罢了,还不是大神。大神程序员是什么样儿呢?他是扫地僧,大隐隐于市。先搞清楚这些名词再说别的:
- TEMPLATESDjango 1.8的新特性一个列表,包含所有在Django中使用的模板引擎的设置。列表中的每一项都是一个字典,包含某个引
- “不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》
- 以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载
- 本文实例讲述了Python基于多线程实现ping扫描功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!
- 1、生成正态分布数据并绘制概率分布图import pandas as pdimport numpy as npimport matplotl
- excel 文件内容如下:读取excel内容:import xlrdfrom datetime import datetimefrom xl