当前位置: 首页 > news >正文

uni-app+ts----微信小程序锚点定位 、自动吸顶、滚动自动选择对应的锚点(点击tab跳转对应的元素位置)

uni-app----微信小程序锚点定位 、自动吸顶、滚动自动选择对应的锚点(点击tab跳转对应的元素位置)

  1. html代码部分 重点是给元素加入【 :id=“‘item’ + item.id”】
 <view class="radiusz bg-white pt-[30rpx] z-[999]"><u-tabs:list="list":current="current"@change="tabChange"bg-color="transparent":active-color="mainColor":bar-width="90"font-size="24":gutter="26"></u-tabs></view><viewclass="px-[20rpx] py-[20rpx] w-full bg-white mb-[30rpx] box-border"v-for="item in list":key="item.id"><view class="text-center" :id="'item' + item.id"><text class="pr-[10rpx]">———</text>{{ item.name}}<text class="pl-[10rpx]">———</text></view><view class="mt-[40rpx]"><u-parse :html="item.content"></u-parse></view><view class="mt-[40rpx]"><apply-btn :customClass="customClass" btnText="加盟申请"></apply-btn></view></view>

2.JS代码部分

import { getCurrentInstance } from 'vue'
const { proxy } = getCurrentInstance() as any
const customClass = ref('m-auto') //按钮样式
const current = ref(0) // tab默认索引/*** @description: 滚动到对应的位置 uni-app锚点定位 、自动吸顶、滚动自动选择对应的锚点* @param {*} index:tab选中的索引* @return {*}*/
const pageScroll = (index: number) => {nextTick(() => {const id = list.value[index].idconst query = proxy.createSelectorQuery()query.select('#item' + id).boundingClientRect((data: Record<string, any>) => {const query1 = proxy.createSelectorQuery() //需要定义一个新的query1.select('.boxz').boundingClientRect((res: Record<string, any>) => {const scrollTop = data.top - res.top // 获取差值const skewY = 80 // 偏移高度// 页面开始进行滚动到目标位置uni.pageScrollTo({scrollTop: scrollTop > 0 ? scrollTop - skewY : scrollTop + skewY,duration: 300,complete: function () {console.log('滚动完成')}})}).exec()}).exec()})
}/*** @description: 点击tab选项* @param {*} index :选中的索引* @return {*}*/
const tabChange = (index: number) => {current.value = indexpageScroll(index)
}

在这里插入图片描述

相关文章:

  • OSS+CDN的资费和安全
  • 【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法
  • 蓝桥杯第四场双周赛(1~6)
  • 日志检索场景ES->Doris迁移最佳实践:函数篇
  • 删除list中除最后一个之外所有的数据
  • 深入理解Zookeeper系列-1.初识Zoookeeper
  • Redis主从与哨兵架构详解
  • 函数声明与函数表达式
  • springboot+jsp+java房屋销售出租赁网站的ssm设计与实现7xcvq
  • 深入了解Java8新特性-日期时间API:OffsetDateTime类
  • RocketMQ-快速实战
  • docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor
  • 【开源】基于JAVA的大病保险管理系统
  • matlab 混沌动力学行为-分岔图-李雅普指数等
  • 推荐几款python在线学习和电子书网站
  • django开发-定时任务的使用
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript实现分页效果
  • Java知识点总结(JavaIO-打印流)
  • jquery ajax学习笔记
  • KMP算法及优化
  • nodejs实现webservice问题总结
  • passportjs 源码分析
  • VuePress 静态网站生成
  • 仿天猫超市收藏抛物线动画工具库
  • 分布式熔断降级平台aegis
  • 工作手记之html2canvas使用概述
  • 诡异!React stopPropagation失灵
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 排序算法之--选择排序
  • 前端面试题总结
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 入门到放弃node系列之Hello Word篇
  • 延迟脚本的方式
  • 说说我为什么看好Spring Cloud Alibaba
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)(1.9) MSP (version 4.2)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)fiber的基本认识
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十六)Flask之蓝图
  • (四)Linux Shell编程——输入输出重定向
  • (译) 函数式 JS #1:简介
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .gitignore文件—git忽略文件