Vue3页面内跳转锚点-scrollIntoView()

news2024/12/23 11:30:35

scrollIntoView() 

scrollIntoView()方法将调用它的元素滚动到浏览器窗口的可见区域。 

  • element.scrollIntoView(); // 等同于element.scrollIntoView(true)
  • element.scrollIntoView(alignToTop); //布尔参数。接受布尔值主要还是为了兼容不支持平滑滚动(老版)的浏览器
  • element.scrollIntoView(scrollIntoViewOptions); //对象参数

alignToTop

  • 当传入参数true时,相当于{behavior: 'auto', block: 'start', inline: 'nearest'}
  • 当传入参数false时,相当于{behavior: 'auto', block: 'end', inline: 'nearest'}
当未传入参数时,默认值为: {behavior: 'auto', block: 'start', inline: 'nearest'}

 

scrollIntoViewOptions,一个包含下列属性的对象。

  • behavior定义过渡动画,默认值为auto

    • auto,表示没有平滑的滚动动画效果。
    • smooth,表示有平滑的滚动动画效果。
  • block定义垂直方向的对齐,默认值为start

    • start,表示顶端对齐。
    • center,表示中间对齐。
    • end,表示底端对齐。
    • nearest

      • 如果元素完全在视口内,则垂直方向不发生滚动。
      • 如果元素未能完全在视口内,则根据最短滚动距离原则,垂直方向滚动父级容器,使元素完全在视口内。
  • inline定义水平方向的对齐,默认值为nearest

    • start,表示左端对齐。
    • center,表示中间对齐。
    • end,表示右端对齐。
    • nearest

      • 如果元素完全在视口内,则水平方向不发生滚动。
      • 如果元素未能完全在视口内,则根据最短滚动距离原则,水平方向滚动父级容器,使元素完全在视口内。

 

效果图: 

 示例代码:

<template>
  <div class="box">
    <div class="left">
      <p @click="test('id1')">第一段内容</p>
      <p @click="test('id2')">第二段内容</p>
      <p @click="test('id3')">第三段内容</p>
    </div>
    <div class="right">
      <div class="content" id="id1">我是第一段内容</div>
      <div class="content" id="id2">我是第二段内容</div>
      <div class="content" id="id3">我是第三段内容</div>
    </div>
  </div>
</template>

<script setup lang="ts">
const test = (data: any) => {
  document?.getElementById(data)?.scrollIntoView({
    behavior: "smooth", //smooth:平滑,auto:直接定位
    block: "start",
    inline: "start",
  });
};
</script>

<style scoped lang="scss">
.box {
  width: 50vw;
  height: 50vh;
  display: flex;
  overflow: hidden;
  border: 1px solid gray;

  .left {
    width: 100px;
    height: 100%;
    border-right: 2px solid gray;
    p {
      height: 40px;
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      border: 1px solid #ccc;
    }
  }

  .right {
    flex: auto;
    overflow: auto;
    .content {
      width: 100%;
      height: 1000px;
      border-top: 2px solid blue;
      padding: 20px;
      box-sizing: border-box;
    }
  }
}
</style>

a标签锚点定位

无平滑效果。需要平滑的话用上面的方式

 

<template>
  <div class="box">
    <div class="left">
      <a href="#id1">第一段内容</a>
      <a href="#id2">第二段内容</a>
      <a href="#id3">第三段内容</a>
    </div>
    <div class="right">
      <div class="content" id="id1">我是第一段内容</div>
      <div class="content" id="id2">我是第二段内容</div>
      <div class="content" id="id3">我是第三段内容</div>
    </div>
  </div>
</template>

<script setup lang="ts"></script>

<style scoped lang="scss">
.box {
  width: 50vw;
  height: 50vh;
  display: flex;
  overflow: hidden;
  border: 1px solid gray;
  scroll-behavior: smooth;

  .left {
    width: 100px;
    height: 100%;
    border-right: 2px solid gray;
    a {
      height: 40px;
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      border: 1px solid #ccc;
    }
  }

  .right {
    flex: auto;
    overflow: auto;
    .content {
      width: 100%;
      height: 1000px;
      border-top: 2px solid blue;
      padding: 20px;
      box-sizing: border-box;
    }
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构-树与二叉树

文章目录5.1 树的基本概念5.1.1 树的定义5.1.2 基本术语5.1.3 树的性质5.2 二叉树的概念5.2.1 二叉树的定义及其主要特性5.2.2 二叉树的存储结构5.3 二叉树的遍历和线索二叉树5.3.3 二叉树的遍历5.3.2 线索二叉树5.4 树、森林5.4.1 树的存储结构5.4.2 树、森林、二叉树的转换5.…

Linux学习笔记——HTTP协议

文章目录前言HTTP协议的概念URLurlencode和urldecodeHTTP协议格式HTTP协议版本HTTP协议请求方法GET方法——获取资源POST方法——获取资源PUT方法——传输⽂件PUT方法——获得报文首部在这里插入图片描述DELETE方法——删除文件OPTIONS方法——询问支持的方法HTTP的状态码HTTP常…

050:cesium加载mapbox卫星地图、mapbox地形地图

第050个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载mapbox卫星地图、mapbox地形地图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共79行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设…

【CE】图形化作弊教程通关手册(超真实的游戏体验)

▒ 目录 ▒&#x1f6eb; 导读需求开发环境1️⃣ 第一关翻译操作总结2️⃣ 第二关&#xff08;代码共享&#xff09;翻译操作验证3️⃣ 第三关翻译操作总结&#x1f6ec; 文章小结&#x1f4d6; 参考资料&#x1f6eb; 导读 需求 除了Tutorial-x86_64.exe教程外&#xff0c;CE…

算法,离你并不遥远

算法&#xff0c;离你并不遥远引子什么是算法&#xff1f;为什么算法很重要&#xff1f;什么时候开始学算法&#xff1f;狭隘的算法定义算法从现在学起&#xff0c;从现在用起算法永不过时引子 今天又是搬砖摸鱼胡混的一天&#xff0c;在问答闲逛&#xff0c;看到了一个问答&a…

Linux多线程-2

“我是我境遇里的起步者。” -- 里尔克《布里格手记》 在上一节Linux多线程当中&#xff0c;我们讲述了Linux中线程的概念以及线程的控制内容。这一篇博客承接上次内容&#xff0c;我们来对线程安全进行阐述。 目录 1.线程安全 1.1互斥的实现 1.1.1互斥锁实现互斥 1.1.2互…

启动 Ethereum(上海) 主网全节点

问题描述 采用最新的geth版本之后&#xff0c;按照之前的方法启动geth主网节点会出现如下问题&#xff1a; Post-merge network, but no beacon client seen. Please launch one to follow the chain!问题原因 The above message is emitted when Geth is run without a conse…

PyTorch深度学习实战 | 神经网络的优化难题

即使我们可以利用反向传播来进行优化&#xff0c;但是训练过程中仍然会出现一系列的问题&#xff0c;比如鞍点、病态条件、梯度消失和梯度爆炸&#xff0c;对此我们首先提出了小批量随机梯度下降&#xff0c;并且基于批量随机梯度下降的不稳定的特点&#xff0c;继续对其做出方…

SpringBoot集成Dubbo启用gRPC协议

文章目录前言项目结构代码示例父工程api moduleservice module注意事项区别本文记录下SpringBoot集成Dubbo启用gRPC协议&#xff0c;以及与原生 gRPC 在代码编写过程中的区别。 下面还有投票&#xff0c;帮忙投个票&#x1f44d; 前言 Dubbo 在 2.7.5 版本开始支持原生 gRPC 协…

【软件测试】浅了解什么是软件测试及开发测试模型

目录 1.什么是软件测试&#xff1f; 2.什么是需求&#xff1f; 3.什么是测试用例 4.什么是软件错误&#xff08;bug&#xff09;&#xff1f; 5.开发模型和测试模型 5.1软件的生命周期 5.2瀑布模型 5.3螺旋模型 5.4软件测试V模型 5.5软件测试w模型 6.软件测试的生命周…

Redis第二十九讲 Redis集群发布订阅模式以及Redis集群事务

Redis集群状态下的发布订阅 在Redis的几个基本数据结构介绍中,有讲过List数据结构,可以使用List的阻塞特性实现订阅消费,关于Redis的底层数据结构可以参考我的这篇博客:Redis第六讲 Redis之List底层数据结构实现 底层数据结构基本操作可以看我的这篇博客,Redis第十五讲 R…

【从零到Offer】- 泛型

泛型是个啥 ​ Java 泛型是 JDK 5 中引入的一个新特性&#xff0c;其提供了编译时类型安全检测机制&#xff0c;该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型&#xff0c;也就是说所操作的数据类型被指定为一个参数。 ​ 通过将数据类型参数化&#xf…

用opencv+playwright过滑动验证码

目录 梳理思路 编写代码 总结与提高 在本节&#xff0c;我们将使用opencv和playwright这两个库通过QQ空间的滑动验证码。 梳理思路 1. 使用playwright打开浏览器&#xff0c;访问qq空间登录页面。 2. 点击密码登录。 3. 输入账号密码并点击登录。 4. 出现滑动验证码图片后…

大型语言模型综述,非常详细,格局打开!A Survey of Large Language Models

大型语言模型综述&#xff0c;非常详细&#xff0c;格局打开&#xff01;A Survey of Large Language Models 返回论文和资料目录 论文地址 项目地址 1.导读 讲得通俗易懂&#xff0c;且格局拉满&#xff01;基本覆盖了自ChatGPT以来的AI比较火的事件&#xff0c;还多次提到…

AI 模型首次有了国家标准!头部大厂参与编制,辐射 AMD

3月17日&#xff0c;国内首个面向人工智能生成式模型的国家标准正式公开&#xff0c;并向社会征求意见。 该标准全称为《信息技术神经网络表示与模型压缩第一部分&#xff1a;卷积神经网络》 &#xff08;GB&#xff0f;T 42382&#xff0e;1&#xff0d;2023&a…

【Linux系统下安装JDK】

一&#xff0c;linux下载JDK最方便快捷的方式&#xff1a;yum 1&#xff0c;执行下方命令&#xff0c;查看可安装java版本。 yum -y list java*2&#xff0c;选择一个进行安装&#xff0c;带-devel的安装的是jdk&#xff0c;而不带-devel的安装的是jre 3&#xff0c;安装命令…

【springBoot篇1】概念、创建和运行

目录 一、什么是springBoot&#xff1f;为什么要学springBoot springBoot的优点&#xff1a;(5点) 优点1&#xff1a;快速集成框架 优点2&#xff1a;内置了Tomcat容器 优点3&#xff1a;快速部署项目 优点4&#xff1a;少配置&#xff0c;多注解 优点5&#xff1a;支持更…

机器学习中的公平性

文章目录机器学习公平性评估指标群体公平性指标个人公平性指标引起机器学习模型不公平的潜在因素提升机器学习模型公平性的措施机器学习公平性 定义&#xff1a; 机器学习公平性主要研究如何通过解决或缓解“不公平”来增加模型的公平性&#xff0c;以及如何确保模型的输出结果…

生信刷题之ROSALIND——Part 1

目录写在前面1、Counting DNA NucleotidesProblemSample DatasetSample OutputCodeOutput2、Transcribing DNA into RNAProblemSample DatasetSample OutputCodeOutput3、Complementing a Strand of DNAProblemSample DatasetSample OutputCodeOutput4、Rabbits and Recurrence…

Android操作系统介绍

目录 Android 名词 Android LOGO 体系架构 Android系统架构 Linux 内核 硬件抽象层&#xff08;HAL&#xff09; Android Runtime 原生C/C库 Java API框架 系统应用 应用组件 活动 &#xff08;Activity) 服务 &#xff08;Service &#xff09; 广播接收器 &…