首页 > 其他分享 >动态新增锚点(如右侧悬浮导航)

动态新增锚点(如右侧悬浮导航)

时间:2024-09-04 14:53:04浏览次数:7  
标签:area 悬浮 value 锚点 str exclude 右侧 id

//样式模拟
div > div {
  width: 200px;
  height: 500px;
  border: 1px solid #38c46d;
}
#anchor {
  position: fixed;
  width: 100px;
  height: 200px;
  border: 1px solid #000;
  right: 16px;
  top: calc(50% - 50px);
  padding: 0;
  :deep(li) {
    width: 100%;
    text-align: center;
    list-style: none;
    a {
      color: #000;
    }
  }
}

//元素模拟
    <div id="area">
      <div id="box1">box1</div>
      <div id="box2">box2</div>
      <div id="box3">box3</div>
    </div>
    <div>
      <ul id="anchor"></ul>
    </div>

//js控制动态生成锚点
//思路:遍历某个区域内所有的拥有id的子元素,然后生成锚点集;exclude代表特殊情况,排除某些元素,使其不生成锚点;
//具体样式自己调整,加setTimeout是因为在vue或者react中,为了保证元素节点已生成。 /** * * @param area 统计某个区域的id * @param id 在某个元素上生成锚点集 * @param exclude 排除某个元素锚点 */ const createAnchor = (area: string, id: string, exclude?: Array<string>) => { setTimeout(() => { let areaDoc = document.getElementById(area); let anchorDoc = document.getElementById(id); let str = ""; areaDoc.childNodes.forEach((value: any, index) => { if (value.id) { if (exclude) { if (exclude.indexOf(value.id) < 0) { str += `<li><a href='#${value.id}' title='${value.textContent}'>${value.textContent}</a></li>`; } } else { str += `<li><a href='#${value.id}' title='${value.textContent}'>${value.textContent}</a></li>`; } } }); anchorDoc.innerHTML = str; }, 0); }; createAnchor("area", "anchor");

 

标签:area,悬浮,value,锚点,str,exclude,右侧,id
From: https://www.cnblogs.com/xinyouhunran/p/17463811.html

相关文章

  • PBOOTCMS网站首页右侧或者列表页左侧调用tags标签
    在PbootCMS中,{pboot:tags} 标签用于从指定的栏目中调用标签(Tags)。以下是一个详细的示例,展示了如何使用 {pboot:tags} 标签来调用指定栏目的标签,并控制显示的数量。示例代码假设您需要从栏目ID为2、5和8的栏目中调用50个标签,并将其显示在页面上:html <!DOCTYP......
  • (算法)计算右侧⼩于当前元素的个数————<分治-归并排序>
    1.题⽬链接:315.计算右侧⼩于当前元素的个数2.题⽬描述:3.解法(归并排序):算法思路:这⼀道题的解法与求数组中的逆序对的解法是类似的,但是这⼀道题要求的不是求总的个数,⽽是要返回⼀个数组,记录每⼀个元素的右边有多少个元素⽐⾃⼰⼩。但是在我们归并排序的过程中,元素的下......
  • web前端之根据字符串长度从长到短排序、中文字符串优先、样式循环、禁止冒泡、悬浮、
    MENU前言效果图htmlstyleJavaScript前言1、代码段由HTML、CSS(使用Sass语法)和JavaScript组成,创建一个文本框,用户可以在其中输入内容,并通过点击按钮进行操作。2、代码段的主要功能是允许用户输入一系列以、分隔的项,并根据长度对这些项进行排序(中文字符优先),然后......
  • C++八股文——内存管理(堆和栈的区别? C++内存分区? 内存泄漏?如何避免?什么是智能指针?有哪
    文章目录C++内存管理堆和栈的区别C++内存分区内存泄漏?如何避免?1、什么是内存泄露?2、内存泄漏的分类3、什么操作会导致内存泄露?4、如何防⽌内存泄露?5、智能指针有了解哪些?6、构造函数,析构函数要设为虚函数吗,为什么?什么是智能指针?有哪些种类?new和malloc有什么区别?d......
  • vue鼠标点击和滑动锚点
    效果<ulclass="list"><liclass="item"v-for="iteminletters":key="item":ref="item"@click="handleLetterClick"@touchstart.prevent="handleTouchStart&quo......
  • Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐
    效果如下:图片随便找的,可能需要调下样式,代码复制可用,留给有需要的人。 #ifndefCustomTreeWidget_h__#defineCustomTreeWidget_h__#include<QTreeWidget>#include<QPushButton>classCCustomTreeWidget:publicQTreeWidget{ Q_OBJECTpublic: CCustomTreeW......
  • 鸿蒙HarmonyOS NEXT开发:悬浮态效果(ArkTS通用属性)
    悬浮态效果设置组件的鼠标悬浮态显示效果。说明:从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。hoverEffecthoverEffect(value:HoverEffect)设置组件的鼠标悬浮态显示效果。原子化服务API: 从APIversion11开始,该接口支持在......
  • css实现el-select右侧箭头向上向下动画
    css实现el-select右侧箭头向上向下动画<divclass="chooseTag-tip"><i:class="['el-icon-arrow-up',tipFlag?'chooseTag-tip-up':'chooseTag-tip-down']"></i></div><script>tipFla......
  • 即使鼠标位于左侧画布上,右侧画布也会滚动
    我一直在尝试制作一个程序,根据窗口的宽度有3种布局(使用Tkinter)。问题在于中等布局。每当我将鼠标放在左侧画布上并使用MouseWheel时,右侧画布就会滚动,而左侧画布应该滚动。当我的鼠标放在右侧画布上并使用鼠标滚轮时,右侧画布会滚动。我找不到任何解决方案。importtkin......
  • 【HTML+CSS】HTML锚点:创建页面内导航的简易指南
    目录一、什么是HTML锚点?二、如何创建HTML锚点?1.定义锚点目标2.创建指向锚点的链接三、进阶使用1.平滑滚动2.动态锚点四、锚点工具总结五、锚点的应用场景1. 长页面导航2. 表单导航3. 图像画廊4. FAQ页面六、锚点的SEO考虑七、锚点的兼容性八、实践建议......