scrollIntoView 的使用

news2024/11/25 11:04:51

描述

  • 将调用此方法的元素滚动到浏览器窗口的可见区域。

scrollIntoView 官方文档

用法

  • element.scrollIntoView()
    • 用法同 element.scrollIntoView(true)
  • element.scrollIntoView(alignToTop)
    • true 表示 element 元素顶部与可见区域的顶部对齐,默认值
    • false 表示 element 元素底部与可见区域的底部对齐
  • element.scrollIntoView(scrollIntoViewOptions)
    • behavior 过度动画
      • auto 自动
      • instant 立即滚动到位置-瞬间
      • smotth 平滑滚动到位置-缓动
    • block 纵向对齐方式
      • start 表示 element 元素顶部与可见区域的顶部对齐,默认值
      • center 表示 element 元素中部与可见区域的中部对齐
      • end 表示 element 元素底部与可见区域的底部对齐
      • nearest 当 element 元素一部分不在可视区域内时,会就近滚动,可能是顶部对齐,也可能是底部对齐
    • inline 横向对齐方式
      • start 表示 element 元素左边与可见区域的左边对齐
      • center 表示 element 元素中部与可见区域的中部对齐
      • end 表示 element 元素右边与可见区域的右边对齐
      • nearest 当 element 元素一部分不在可视区域内时,会就近滚动,可能是左边对齐,也可能是右边对齐,默认值

实例

  • 模块1
// 瞬间滚动,纵向顶部对齐,横向就近对齐
this.$refs.block1.scrollIntoView();

模块1

  • 模块2
// 瞬间滚动,纵向底部对齐,横向就近对齐
this.$refs.block2.scrollIntoView(false);

模块2

  • 模块3
// 平滑滚动,纵向居中对齐,横向左边对齐
this.$refs.block3.scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "start",
});

模块3

  • 模块4
// 瞬间滚动,纵向就近对齐,横向居中对齐
this.$refs.block4.scrollIntoView({
    behavior: "instant",
    block: "nearest",
    inline: "center",
});

模块4

  • 模块5
// 平滑滚动,纵向顶部对齐,横向就近对齐
this.$refs.block5.scrollIntoView({
    behavior: "smooth",
    block: "start",
    inline: "nearest",
});

模块5

完整代码

<template>
  <div class="mainBox">
    <div class="block block1" ref="block1">
      瞬间滚动,纵向顶部对齐,横向就近对齐
    </div>
    <div class="block block2" ref="block2">
      瞬间滚动,纵向底部对齐,横向就近对齐
    </div>
    <div class="block block3" ref="block3">
      平滑滚动,纵向居中对齐,横向左边对齐
    </div>
    <div class="block block4" ref="block4">
      瞬间滚动,纵向就近对齐,横向居中对齐
    </div>
    <div class="block block5" ref="block5">
      平滑滚动,纵向顶部对齐,横向就近对齐
    </div>
    <div class="block blank">填充区域</div>
    <div class="markBtn">
      <div
        class="btn btn1"
        :class="{ active: actCkick == 1 }"
        @click="markScrollFunc(1)"
      >
        按钮1
      </div>
      <div
        class="btn btn2"
        :class="{ active: actCkick == 2 }"
        @click="markScrollFunc(2)"
      >
        按钮2
      </div>
      <div
        class="btn btn3"
        :class="{ active: actCkick == 3 }"
        @click="markScrollFunc(3)"
      >
        按钮3
      </div>
      <div
        class="btn btn4"
        :class="{ active: actCkick == 4 }"
        @click="markScrollFunc(4)"
      >
        按钮4
      </div>
      <div
        class="btn btn5"
        :class="{ active: actCkick == 5 }"
        @click="markScrollFunc(5)"
      >
        按钮5
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      actCkick: null,
    };
  },
  mounted() {},
  methods: {
    // 点击按钮
    markScrollFunc(index) {
      this.actCkick = index;
      if (index == 1) {
        this.$refs.block1.scrollIntoView();
      } else if (index == 2) {
        this.$refs.block2.scrollIntoView(false);
      } else if (index == 3) {
        this.$refs.block3.scrollIntoView({
          behavior: "smooth",
          block: "center",
          inline: "start",
        });
      } else if (index == 4) {
        this.$refs.block4.scrollIntoView({
          behavior: "instant",
          block: "nearest",
          inline: "center",
        });
      } else if (index == 5) {
        this.$refs.block5.scrollIntoView({
          behavior: "smooth",
          block: "start",
          inline: "nearest",
        });
      }
    },
  },
};
</script>
<style lang="scss" scoped>
.mainBox {
  width: 500px;
  height: 300px;
  padding: 60px;
  overflow: scroll;
  .block {
    color: #fff;
    &.block1 {
      width: 100px;
      height: 200px;
      background: #dfaaa2;
    }
    &.block2 {
      width: 100px;
      height: 200px;
      background: #cea5b7;
    }
    &.block3 {
      width: 200px;
      height: 100px;
      background: #927a9b;
    }
    &.block4 {
      width: 500px;
      height: 200px;
      background: #659ea2;
    }
    &.block5 {
      width: 400px;
      height: 100px;
      background: #6eac95;
      display: inline-block;
    }
    &.blank {
      width: 600px;
      height: 600px;
    }
  }
  .markBtn {
    position: fixed;
    right: 10px;
    top: 10px;
    .btn {
      padding: 10px 20px;
      background: #fff;
      margin-bottom: 5px;
      cursor: pointer;
      &.btn1 {
        border: 1px solid #dfaaa2;
        color: #dfaaa2;
        &.active {
          background: #dfaaa2;
        }
      }
      &.btn2 {
        border: 1px solid #cea5b7;
        color: #cea5b7;
        &.active {
          background: #cea5b7;
        }
      }
      &.btn3 {
        border: 1px solid #927a9b;
        color: #927a9b;
        &.active {
          background: #927a9b;
        }
      }
      &.btn4 {
        border: 1px solid #659ea2;
        color: #659ea2;
        &.active {
          background: #659ea2;
        }
      }
      &.btn5 {
        border: 1px solid #6eac95;
        color: #6eac95;
        &.active {
          background: #6eac95;
        }
      }
      &.active {
        border: 1px solid #fff;
        color: #fff;
      }
    }
  }
}
</style>

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

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

相关文章

基于html+css的图展示56

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Packet Tracer - 第 2 层 VLAN 安全

Packet Tracer - 第 2 层 VLAN 安全 目标 在 SW-1 和 SW-2 之间连接新的冗余链路。 启用中继&#xff0c;并在 SW-1 和 SW-2 之间的新中继链路上 配置安全。 创建新的管理 VLAN (VLAN 20) 并将管理 PC 连接到 该 VLAN。 实施 ACL 以阻…

Java学习-GUI编程-JFrame窗口

Java学习-GUI编程-JFrame窗口 public class TestJFrame {public void init(){JFrame jf new JFrame("这是一个JFream窗口");jf.setVisible(true);jf.setBounds(100,100,400,400);JLabel label new JLabel("这是一个label");label.setHorizontalAlignmen…

Linux之shell函数和正则表达式(八)

1、函数 1、函数概述 shell 中允许将一组命令集合成语句形成一段可用代码&#xff0c;这些代码块称为 shell 函数&#xff0c;给这段代码起个名字称为函数名&#xff0c;后续可以直接调用该段代码的功能 2、定义函数 函数名() {函数体&#xff08;一堆命令的集合&#xff0…

程序员的下一个风口

面对近一年的裁员潮&#xff0c;以及 GPT 出现带来的 AI 颠覆潮流&#xff0c;各种话题出现&#xff1a;「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间&#xff1f; 这一两年的就业机会是因为经济衰落周期内造成的&#xff0c;不…

pmp备考有哪些适合新手的学习资料?

在备考中&#xff0c;无论你是胸有成竹的学霸还是忐忑不安的学渣&#xff0c;强烈建议你是时候展现真正的技术了——临阵磨枪不快也光&#xff01;你准备好了吗&#xff1f;前方为大家准备了高能备考技巧和干货资料包&#xff0c;拿起热水杯&#xff0c;准备走起。 1.PMBOK知识…

怎样使用Web自动化测试减少手动劳动?以百度网站为例

从入门到精通&#xff01;企业级接口自动化测试实战&#xff0c;详细教学&#xff01;&#xff08;自学必备视频&#xff09; 目录 摘要 步骤1&#xff1a;安装和配置Selenium 步骤2&#xff1a;启动浏览器并访问百度网站 步骤3&#xff1a;关闭浏览器 总结 摘要 本指南将…

数据风险评估

通过数据风险评估定位敏感数据并分析其漏洞。根据文件的敏感度对文件进行分类&#xff0c;并确保为它们提供必要的保护。 发现、分析和保护敏感数据 查找所有个人数据根据敏感度对文件进行分类遵守 IT 法规分析文件和权限 查找所有个人数据 监控企业存储环境并接收有关敏感…

(CVE-2022-22965)Spring Framework 远程命令执行漏洞(vulfocus复现)

漏洞原理 该漏洞是SpringFramework数据绑定的一个漏洞&#xff0c;如果后台方法中接受的参数为非基础类型&#xff0c;Spring会根据前端传入的请求正文中的参数的key值来查询与其名称所对应的getter和setter方法&#xff0c;攻击者利用这一特性修改了Tomcat的一个用于日志记录…

java开发记录v2(引入jar,问题及解决)

引入本地jar包 在src同级目录下新建libs目录将jar包放入进去 在pom.xml中下加入以下代码 <dependencies><dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.8</ver…

Acer非凡X14笔记本电脑蓝屏了怎么U盘重装系统?

Acer非凡X14笔记本电脑蓝屏了怎么U盘重装系统&#xff1f;有用户在使用Acer非凡X14笔记本电脑的时候&#xff0c;系统开机后出现了蓝屏的情况&#xff0c;导致自己的电脑无法正常的去进行使用。那么这个情况怎么去通过U盘重装系统的方法来恢复系统的使用呢&#xff1f;一起来看…

软考A计划-重点考点-专题十二(JAVA程序设计)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

数据中心列头柜监控在常熟某微模块中的应用

安科瑞 耿敏花 摘要&#xff1a;安科瑞精密配电系统是安科瑞针对数据中心集中监控要求提供的多回路监控装置&#xff0c;监控多回路电参量并可对各种故障进行告警。主要适用于各类列头柜、精密配电柜、电源分配柜、UPS输出柜等末端配电设备的监控。在阐述数据中心机房机柜配电…

Keepalived结合Nginx实现WEB高可用服务

前言 随着Nginx在国内的发展潮流&#xff0c;越来越多的互联网公司都在使用Nginx&#xff0c;Nginx高性能、稳定性成为IT人士青睐的HTTP和反向代理服务器。 Nginx负载均衡一般位于整个网站架构的最前端或者中间层&#xff0c;如果为最前端时单台Nginx会存在单点故障&#xff0…

【SpringBoot2】四:核心技术----配置文件

文章目录 1.SpringBoot配置文件种类2.yaml3.支持的数据类型4.对象5.数组6.字面量7.示例 1.SpringBoot配置文件种类 主要有两种类型&#xff1a; properties yaml 2.yaml 语法&#xff1a; 大小写敏感使用缩进表示层级关系缩进不允许使用tab&#xff0c;只允许空格缩进的空格…

开源字节数字化乡村系统

随着社会的发展&#xff0c;互联网技术的迅速发展&#xff0c;乡村建设也受到了越来越多的关注。互联网乡村建设是一种新型的乡村建设模式&#xff0c;它将互联网技术与乡村建设相结合&#xff0c;以提高乡村建设的效率和质量。为了实现互联网乡村建设&#xff0c;需要建立一个…

2023 FP独立站的运营玩法汇总

无论Paypal怎么风控封号、冻结资金&#xff0c;但还是有很多新人前仆后继地加入外贸独立站这一行&#xff0c;特别是做FP。因为明白人都知道&#xff0c;FP利润空间比普货产品大得多。 那么2023年的独立站我们该怎么做&#xff0c;怎么运营才能逐步起色&#xff1f;今天我就跟…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

48-Dockerfile-CMD/ENTRYPOINT指令

CMD/ENTRYPOINT指令 前言CMD作用格式使用示例 ENTRYPOINT作用格式使用示例CMD/ENTRYPOINT区别CMD使用示例ENTRYPOINT使用示例 前言 本篇来学习下Dockerfile中的CMD/ENTRYPOINT指令 CMD 作用 启动容器时默认执行的命令 说明&#xff1a; 一个 Dockerfile 只有一个 CMD 指令&…

nginx+flume网络流量日志实时数据分析实战

文章目录 nginxflume网络流量日志实时数据分析实战网络流量日志数据分析-概述网络流量日志数据分析-数据处理流程网络流量日志数据分析-数据采集网站日志文件启动nginx服务器:刷新页面,查看日志信息:日志字段解释 网络流量日志数据分析-数据采集-Flume框架Flume概述Flume运行机…