首页 > 其他分享 >文章目录实现

文章目录实现

时间:2023-12-25 10:36:49浏览次数:38  
标签:const 实现 element item titles 文章 id navList 目录

内容标题绑定title-nav样式类

const elements = document.querySelectorAll(".title-nav");
const titles=[]
for (let i = 0; i < elements.length; i++) {
  const element = elements[i];
  let node={
    id:i,
    title:element.innerText,
    element: element,
  }
  titles.push(node)
}
this.navList=titles
window.addEventListener("scroll",debounce(this.scrollHander,200))
scrollToView(item) {
    this.currentTitle=item.id
    item.element.scrollIntoView({ behavior: "smooth" })
},
scrollHander(){
    if(this.navList[0].element.getBoundingClientRect().top>300){
        this.currentTitle=0
        return
    }
    for(let i=0,len= this.navList.length;i<len;i++){
      let top=this.navList[i].element.getBoundingClientRect().top
      // 切换区域顶部300px
      if(top>=0&&top<=300){
        this.currentTitle=this.navList[i].id
        break
      }
      // 视图第一标题300px外
      else if(top<0&&this.navList[i+1]&&this.navList[i+1].element.getBoundingClientRect().top>300){
        this.currentTitle=this.navList[i].id
        break
      }
}

标签:const,实现,element,item,titles,文章,id,navList,目录
From: https://www.cnblogs.com/772330747wh/p/17925593.html

相关文章

  • contentEditable实现div可编辑,控制插入节点(兼容IE)
    实现可文字编辑也可插入节点的功能展示如下:html5中contentEditable属性规定是否可编辑元素的内容,给需要编辑的节点添加contentEditable="true"。兼容性:当点击Button时在编辑框内增加节点:一开始div中加的span标签,发现有几个缺陷:点删除键时span不会删除整个,而是一个一个删除span里的......
  • 在Linux环境下模拟实现命令解释器用c语言实现mypwd「粉丝答疑」
    Solution要在Linux环境下用C语言模拟实现一个命令解释器,包含mypwd,mymkdir,myrmdir,mycd,mylist,mycp,mydate,mycreate,mydelete,exit等基本命令,需要按照以下步骤进行:理解每个命令的功能:mypwd:显示当前工作目录。mymkdir:创建一个新目录。myrmdir:删除一个空目......
  • vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)
     一、要实现的效果(纵向固定表头的表格,横向表头数量动态化)二、这是后台返回的数据格式(以企业为数组,每个企业里有个站点数组pointFactors) 三、代码实现步骤 (1)定义纵向固定表头1//纵向表头数组tableColumns2consttableColumns=ref([3{4label:"日(24......
  • 在Python中实现ESG(环境、社会、治理)因子的交易策略,我们可以使用pandas库来读取数据,并
    在Python中实现ESG(环境、社会、治理)因子的交易策略,我们可以使用pandas库来读取数据,并使用AlphaVantage提供的API来获取股票价格数据²。以下是一个简单的代码示例:importpandasaspdimportrequests#获取股票价格数据response=requests.get(alpha_vantage_url)data=res......
  • 基于java斗车交易系统设计与实现
    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对斗车交易系统进行了介绍,包括......
  • 一步步教你实现baidu网盘不限速(千千助手)
    话不多说,直接进入主题一、先安装油猴插件[Tampermonkey]以下用谷歌浏览器演示,打开浏览器,点击右上角的【...】,找到其中【更多工具】的【扩展程序】选项。二、然后选择左上角的三横杠三、再选择最下面的【打开Chrome应用商店】选项四、在上方搜索栏上输入【Tampermonkey】,然后回车进......
  • Vue3之实现一个可拖拽的div
    实现一个可拖拽的div写法如下:constchatbox=ref();constdragx=(el)=>{letoDiv=chatbox.value;//当前元素letdisX=el.clientX-oDiv.offsetLeft;letdisY=el.clientY-oDiv.offsetTop;document.onmousemove=function(e){//通过事件委托,......
  • .net core中如何自定义静态文件目录、默认主页、和文件浏览目录?
    在.NETCore中,UseStaticFiles、UseDefaultFiles、UseDirectoryBrowser和UseFileServer中间件用于处理静态文件和目录浏览。下面我将为你提供一个简单的例子,演示它们的用法。首先,确保你的项目已经安装了Microsoft.AspNetCore.StaticFiles NuGet包,因为这是这些中间件的依赖。dotn......
  • .Net Core 实现 自定义Http的Range输出实现断点续传或者分段下载
    一、Http的Range请求头,结合相应头Accept-Ranges、Content-Range可以实现如下功能:1.断点续传。用于下载文件被中断后,继续下载。2.大文件指定区块下载,如视频、音频拖动播放,直接定位到指定位置下载内容。可以避免每次都读取、传输整个文件,从而提升服务端性能。3.大文件分包批量下......
  • Qt&&C++ 实现Tcp Server
    关于Qt&C++实现Tcp服务器的一些简易使用笔记... "材料"准备#include<QTcpServer>//Server需要包含该头文件,Client则不用#include<QTcpSocket>#include<QHostAddress>服务器流程简要1.实例化一个QTcpServer对象:  QTcpServer*server=newQTcpServer(this);2......