动态数据锚点定位

2023-11-09

锚点定位

左侧点击右侧锚点定位样式一

   <div class="left">
          <a href="#book_time" @click="changeTabs(1)"></a>
          <a href="#search" @click="changeTabs(1)"></a>
          <a href="#search_flow" @click="changeTabs(1)"></a>
        </div>
        <!-- 内容部分 -->
        <div class="right">
          <div id="book_time">
            <!-- content -->
          </div>
          <div id="search">
              <!-- content -->
          </div>
          <div id="search_flow">
              <!-- content -->
          </div>
        </div>

vue锚点定位二

适用于动态获取的标题和内容

collapseTransition是引用的外部js
            <!-- 二级导航跳转导相对应名称的地方 -->
<!-- 左侧 -->
 <div v-for="(item, index) in units" :key="item.code">

  <div class="titleDate">
<!-- 一级导航名称 -->
            <div @click="clickItem(item, index,item.setindex-1)" class="fontdata">
              <span :class="num === index ? 'active' : ''" class="font">{{item.name}}</span>
            </div>
              </div>
            <transition-group v-show="!isShow[index]">
            <div class="api-item" v-for="(i, order) in item.apiInfoDto" :key="i.id" >
              <div>
                <vi-tooltip>
                  <template slot='title'>
                   <span>{{i.name}}</span>
                  </template>
<!-- 二级导航名称 -->
                  <span :class="num === order ? 'active' : ''" class="ellipsis" @click="groupDate(index,order,i.indexScroll)">{{i.name}}</span>
                </vi-tooltip>

              </div>
            </div>
            </transition-group>
          </div>
        </div>


<!-- 右侧 -->
<div v-for="(it, indexs)  in details" :key="`wrap_${indexs}`" class="setTitle">
<!-- 对应的一级导航名称{{it.name}} -->
              <div class="unit-name">{{it.name}}</div>
              <div v-for="(item,index) in it.child" :key="`wrap_${index}`" class="section">
              <div class="title" >
                <span>{{index+1}}</span>
<!-- 对应的二级导航名称{{item.name}} -->
                <strong ref="titleName" :id="'strong'+index">{{item.name}}</strong>
              </div>
              <collapseTransition v-if="item.info && item.info.length > 0">
                <div v-show="item.expand" class="content" style="padding-top: 12px; position: relative;">
                    <div v-for="(data, key) in item.info" :key="`sub_${key}`">
                      <div v-if="item.info.length > 1" class="subTitle" >{{`${item.name}${key+1}`}}</div>
                      <vi-row type="flex" style="padding: 0 24px;">
                        <template v-for="(res, n) in data">
                          <div v-if="res && res.data !== null" :key="`item_${n}`" style="width: 33.3%; float: right">
                            <div v-if="res.name ==='身份证图片'" style="position: absolute;display: flex; flex-direction: row ;top: 20px; right: 10px;">
                              <img :src="res.data" style="width: 120px"/>
                            </div>
                            <div v-else style="display: flex; flex-direction: row; padding: 0 16px 12px 16px;">
                              <label style="color: #333333">{{res.name}}</label>
                              <div style="color: #333333">{{res.data}}</div>
                            </div>
                          </div>
                        </template>
                      </vi-row>
                    </div>
                </div>
              </collapseTransition>
            </div>
            </div>


方法内容:

data(){
return {
num: 0,
isShow: [],
units: [ {
“name” : “一级标题1,
“child” : [ {
“name” : “二级标题1,
“info” : [ [ {
“data” : “张三”,
“name” : “张三1,
“order” : 1
}, {
“data” :./images/1.png”,
“name” : “图片”,
“order” : 999
} ] ],
“status” : 2
}, {
“name” : “二级标题3,
“info” : [ [{
“data” : “张三”,
“name” : “张三1,
“order” : 1
} ] ],
“status” : 2
} ]
}, {
“name” : “一级标题2,
“child” : [ {
“name” : “二级标题1,
“info” : [ [ {
“data” : “张三”,
“name” : “张三1,
“order” : 1
}, {
“data” : “李四”,
“name” : “李四2,
“order” : 2
}, {
“data” : “和”,
“name” : “何址”,
“order” : 999
} ] ],
“status” : 2
} ]
} ],
details:
[ {
“name” : “一级标题1,
“child” : [ {
“name” : “二级标题1,
“info” : [ [ {
“data” : “张三”,
“name” : “姓名”,
“order” : 1
}]],
}],
},{
“name” : “一级标题2,
“child” : [ {
“name” : “二级标题1,
“info” : [ [ {
“data” : “张三”,
“name” : “姓名”,
“order” : 1
}]],
}],
}]

}//collapseTransition使用
components: {
    collapseTransition
  },
mothods:{
clickItem(item, index,setindex) { //一级标题
console.log(item,index,setindex)
if(setindex==-1){
this.returnTop()
}else{
let jump = document.getElementsByClassName(‘setTitle’);
// 获取需要滚动的距离
let total = jump[setindex].offsetTop - 70;
// Chrome
document.body.scrollTop = total;
// Firefox
document.documentElement.scrollTop = total;
// Safari
window.pageYOffset = total;
},
loadSrollTitle: function () { //大类滚动scrollTop
var self = this;
var $navs = $(".nav1");
var setTitles = document.getElementsByClassName(‘setTitle’);
for (var i = setTitles.length - 1; i >= 0; i–) {
if (self.scroll >= setTitles[i].offsetTop - 100) {
$navs.eq(i).addClass(“current”).siblings().removeClass(“current”)
break;
}
}
},
groupDate(index,order,indexScroll){ //点击二级目录
let jump = document.getElementsByClassName(‘section’);
// 获取需要滚动的距离
let total = jump[indexScroll].offsetTop - 80;
// Chrome
document.body.scrollTop = total;
// Firefox
document.documentElement.scrollTop = total;
// Safari
window.pageYOffset = total;
},
loadSroll: function () {//二级导航scrollTop
var self = this;
var $navs = $(".nav1");
var sections = document.getElementsByClassName(‘section’);
for (var i = sections.length - 1; i >= 0; i–) {
if (self.scroll >= sections[i].offsetTop - 100) {
$navs.eq(i).addClass(“current”).siblings().removeClass(“current”)
break;
}
}
},
},
mounted(){
window.addEventListener(‘scroll’, this.dataScroll);
},
watch: {
scroll: function () {
this.loadSroll()
this.loadSrollTitle()
}
},
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态数据锚点定位 的相关文章

  • vue 移动端监听div滚动条的滚动事件

    第一步 监听div 定义ref div class accpdfbox div 第二步 在mounted钩子函数绑定滚动条事件 mounted this refs rightContent addEventListener scroll t
  • 基于c++实现RTSP/RTMP推流组件PushStream简介

    技术在于交流 沟通 转载请注明出处并保持作品的完整性 原文 https blog csdn net hiwubihe article details 84639975 本系列相关文章 基于c 实现RTSP RTMP推流组件PushStrea
  • 群晖video station 2.4.9-1626申请API后无法连接的解决办法

    近日Video Station DS video 无法搜刮电影信息 原因是themoviedb被墙了 通过修改群晖hosts文件的方式让群晖可以访问themoviedb 这样就可以可以继续刮削电影信息 操作方法 1 群晖打开SSH通过SSH
  • [亲测可用]JetBrains Rider v2019.3.x详细安装教程

    链接 https www jianshu com p fb3962f8dc95
  • 部署netcore项目时出现HTTP 错误 500.19 - Internal Server Error

    找到 功能视图 中的 模块 查看是否有下图的ASPNETCoreModuleV2 如果没有则表示未安装安装 ASP NET Core 模块 托管捆绑包 解决方案 点击右侧连接下载 NET Core 托管捆绑包安装程序 直接下载 安装成功后
  • 06. 解空间

    定义 解空间意为 Ax b Ax b的所有解的集合 求解 设 A 1232462682810 b b1b2b3 A begin bmatrix 1 2 2 2 2 4 6 8 3 6 8 10 end bmatrix quad b begi
  • 必会面试题:对 React 和 Vue 的理解,它们的异同

    相似之处 都将注意力集中保持在核心库 而将其他功能如路由和全局状态管理交给相关的库 都有自己的构建工具 能让你得到一个根据最佳实践设置的项目模板 都使用了 Virtual DOM 虚拟 DOM 提高重绘性能 都有 props 的概念 允许组
  • frp内网穿透搭建及使用

    有些设备要放在客户的内网中 公网无法访问 迫切需要一个能够内网穿透的小工具 使得访问内网的设备就像访问公网设备一样 frp就是这样一个轻量级的小工具 用了大概一年 感觉既稳定又好用 值得推荐 frp的搭建和配置并不麻烦 首先去frp的git
  • C++学习笔记8:模板

    15号 模板 io流开头 论文返稿整理信息 16 io结束 异常占坑 最晚17晚开始学网络编程 加油加油 13 11 25天 网络编程项目 源码也要开个头 模板的概念 函数模板和模板函数 类模板和模板类 模板的概念 函数重载可以实现具有相同
  • 1.9 聪明的投资者:投资者与市场波动

    投资者要想获利 通过所持有证券的价值随着时间的推移而上涨 按有利的价格购买和出售 如果想投机的话 请睁大自己的双眼 知道最终有可能亏本 请确保将风险额度控制在一定范围内 并将投机和投资计划完全分开 市场波动对投资决策的指导作用 择时方法 低
  • Proteus8.9 仿真数码管 闪退问题及其解决方法

    问题描述 在使用Proteus8 9仿真C51时可以正常使用 但是在加入数码管器件后 再次进行仿真 每次在仿真的三到五分钟后 Proteus闪退 解决方法 因为我自己Proteus软件没有重要文档 属于前期发现问题 在网上寻找解决方法 尝试
  • Qt中嵌入视频并循环播放方法

    Qt中插入视频的方法很多 有QVideoPlayer方法 也有用Phonon的 本篇博客就是描述如何在一个QMainwindow界面中 划出一个区域 播放视频 并可以控制视频的切换 停止 暂停 循环 笔者会将遇到的坑一个个重述一遍 以作为后
  • 为什么MVC不是设计模式?

    为什么MVC不是设计模式 mvc不是设计模式 而是设计模式的组合 更像是架构 mvc更像是观察者模式 策略模式 组合模式的组合 model表示应用的数据模型 view处理屏幕上展现给用户的内容 当一个model变化时 与它对应的模块发出通知
  • 微信朋友圈装x代码_微信聊天隐藏“表白”代码,好友都看懵了,太神奇了

    了解更多热门资讯 玩机技巧 数码评测 科普深扒 点击右上角关注我们 技能 微信聊天特效代码 难度系数 1颗星 适用系统 安卓 iOS 昨天 所长终于鼓起勇气约了自己喜欢了很久的女生 毕竟像我这种技术宅 约人怎么可能直说嘛 怪不好意思的 于是
  • 如何调试makefile变量

    六 七年前写过一篇 跟我一起写Makefile 直到今天 还有一些朋友问我一些Makefile的问题 老实说 我有一段时间没有用Makefile了 生疏了 回顾 这几年来大家问题我的问题 其实很多时候是makefile的调试问题 所以 就像
  • [原创]基于EDFlib/C++实现脑电数据EDF标准格式读写

    一 关于EDF European Data Format 格式的介绍 欧洲数据格式 EDF 是一种用于交换和存储多通道生物和物理信号的简单而灵活的格式 它是由几位在哥本哈根举行的1987年国际睡眠大会上首次会见的欧洲 医疗 工程师开发的 E
  • 关于openwrt的802.11w 管理帧保护使用

    目录 关于openwrt的802 11w 管理帧保护使用 802 11w技术说明 背景 技术概述 新的密钥管理方式 802 11w技术总结 openwrt中的应用 openwrt中界面上的提示 实际遇到的问题 802 11w应用总结 关于o
  • cocos creator小人碰撞墙壁效果

    1 给小人添加刚体组件 添加组件 gt 物理组件 gt collider gt Box 去掉Allow Sleep 必须去掉 否则只检测一次碰撞 Fixed Rotation勾选 禁止墙壁旋转 将gravity scale设置为0 去掉重力
  • Rose画状态图

    一 何谓状态图 1 状态图的概念 状态图由 状态 转换 事件 活动和动作5部分 组成 1 状态指的是对象在其生命周期中的一种状况 处于某个特定状态中的对象必然会满足某些条件 执行某些动作或者是等待某些事件 一个状态的生命周期是一个有限的时间

随机推荐

  • servlet服务器端和android端json交互

    今天尝试用servlet编写服务器端代码 返回json数据格式给服务器端 1 google提供的gson fromJson 和toJson方法 2 服务器端servlet url中使用的方法 知道怎么在web xml中配置 3 get 和p
  • 修改标准程序的GUI_STATUS

    用户提出需求 要求PO与PR可以增加按钮进行与OA系统的集成 最终效果如下 首先在类CL COMPOSITE SCREEN VIEW MM中的方法EXCLUDING FUNCTIONS中加入GUI STATUS的替代 创建一个空的程序Z M
  • 手机随机数字抽奖器_用Excel制作随机抽奖器,只需2步轻松搞定

    大家在一些节目中应该经常会看到抽奖环节 在海量的手机号码中随便抽出一个来 今天 小汪老师就来用Excel仿制一个简易的抽奖器 制作起来非常简单 大家今后如果做抽奖活动的话 也可以用上一用 效果演示 按住F9键不松 即可开始抽奖 松开后会随机
  • XMLHttpRequest: 网络错误 0x80070005, 拒绝访问 解决办法

    我使用的是vue element ui 开发后台管理系统 之前在ie中都可以正常执行操作 今天在编辑一个页面后报错 新建功能是可以正常提交数据的 但当我新建好了数据再点编辑进去修改内容后提交时就会报错 这个错仅在ie中出现 我使用的是ie1
  • oracle使用PLsql查询

    oracle查询当前用户名下所有表 TEST为用户名 用户名必须是大写 select from all tables where owner TEST 查看当前登录的用户的表 select table name from user tabl
  • latex中的对与错(对号√与叉号×)、空格

    转载 LaTeX 对号和错号 Xovee的博客 CSDN博客 latex对号错号 转载 LaTeX中的空格汇总 AXYZdong的博客 CSDN博客 latex空格符号怎么打出来 空格 对号 错号 代码 documentclass arti
  • c语言字符指针初始化赋值,C语言_指针变量的赋值与运算,很详细详解

    指针变量的赋值 指针变量同普通变量一样 使用之前不仅要定义说明 而且必须赋予具体的值 未经赋值的指针变量不能使用 否则将造成系统混乱 甚至死机 指针变量的赋值只能赋予地址 决不能赋予任何其它数据 否则将引起错误 在 语言中 变量的地址是由编
  • 基于K8S的CI&CD--安装部署zookeeper

    安装部署zookeeper 主机名 角色 IP node7 11 host com zk1 10 4 7 11 node7 12 host com zk2 10 4 7 12 node7 21 host com zk3 10 4 7 21
  • Unity场景导出GLTF格式的文件方法

    最近需要在Unity中解析GLTF文件 以及能够导出Unity的场景信息 经过查询 最后决定使用UnitGLTF这个开源库 1 首选下载代码 git clone https github com KhronosGroup UnityGLTF
  • java并发编程(7) 共享模型之工具 - 自定义线程池

    文章目录 前言 1 线程池 2 线程池自定义 步骤1 自定义拒绝策略接口 步骤2 自定义任务队列 1 任务队列参数定义 2 任务队列获取任务 3 任务队列添加任务 4 任务队列其他方法 5 任务队列全部代码 步骤3 自定义线程池 1 线程池
  • Qt多进程间通信方式——共享内存

    正文 Windows平台下进程间通信常用方式有管道 文件映射 Socket通信和共享内存等 这里详细介绍一下Qt的共享内存机制 Qt官方例子 Qt官方的例子主要是一个客户端加载图片后 将图片存储到共享内存中 另一个客户端从共享内存中获取图片
  • duboo使用zookeeper连接的单机及集群配置方式

    1 单机配置
  • Spring Boot中使用WebSocket 【第一部分】

    简介 所谓WebSocket 类似于Socket 它的作用是可以让Web应用中的客户端和服务端建立全双工通信 在基于Spring的应用中使用WebSocket一般可以有以下三种方式 使用Java提供的 ServerEndpoint注解实现
  • 关于maven项目中Tomcat10与JSTL问题汇总(Debug亲身经历)

    文章目录 问题描述与解决方法 问题1 无法在web xml或使用此应用程序部署的jar文件中解析绝对uri http java sun com jsp jstl core 问题2 java lang NoClassDefFoundError
  • java 调用cmd_java打开本地应用程序(调用cmd)---Runtime用法详解

    有时候我们需要借助java程序打开电脑自带的一些程序 可以直接打开或者借助cmd命令窗口打开一些常用的应用程序或者脚本 在cmd窗口执行的命令都可以通过这种方式运行 例如 packagecn xm exam test importjava
  • 爱情与婚姻的区别(多种说法)

    在生活中 爱情与婚姻的话题 总是被人们不停的讨论着 有人说婚姻是爱情的坟墓 也有人说婚姻是爱情的延续 可我却认为 爱情是浪漫的 而婚姻是现实的 在现实中没有一个人敢说自己真正的懂得爱情 或是看透了婚姻 而至于婚姻是爱情的延续也好 或婚姻是爱
  • html5 css3教案,认识CSS3和HTML5

    内容简介 认识CSS3和HTML5 内容节选 共100页 本文写于2006年1月 当时IE7 IE8和Firefox3还未发行 文中所有说的浏览器支持均未包括这三个版本的浏览器 在IE8和Firefox3中 文中的大部分选择符已经被支持 d
  • android 实现GridView多选效果

    在使用 GridView的时候 有时需要多选上面显示的类容 比如批量删除上面显示的图片 批量上传图片等 这个时候我们可以使用层叠图来实现 效果如下 点击图片后 上面会显示出一个打钩的图片 如图 再点击选中图片 勾消失 转存失败重新上传取消
  • 基于均匀分布总体的样本及其概率密度函数的数据分析

    基于均匀分布总体的样本及其概率密度函数的数据分析 在数据分析中 我们经常遇到从某个总体中获取的样本数据 本文将讨论一个由均匀分布总体生成的样本 并使用R语言来演示相关的数据分析技术 首先 让我们了解均匀分布总体及其概率密度函数 均匀分布是一
  • 动态数据锚点定位

    锚点定位 左侧点击右侧锚点定位样式一 div class left a href book time a a href search a a href search flow a div div class right div div di