当前位置: 首页 > news >正文

点击按钮,让页面滚动到指定位置的方法

1.喵点

2.ele.scrollIntoView()

关于scrollIntoView方法:

https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    ul {
      margin: 20px 0;
    }

    .item-style {
      height: 200px;
      margin: 20px 0;
      list-style: none;
      border: 1px solid #d6d6d6;
      font-size: 90px;
      color: #fff;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .item-style:nth-child(2n) {
      background-color: cornflowerblue;
    }

    .item-style:nth-child(2n+1) {
      background-color: burlywood;
    }

    #input-style {
      width: 100%;
      height: 50px;
      font-size: 40px;
    }

    .btn-style {
      height: 60px;
      border-radius: 4px;
      border: none;
      background-color: darkcyan;
      font-size: 30px;
      color: #fff;
      margin: 20px;
    }
  </style>
</head>
<body>
<button onclick="moveCenter()" class="btn-style">
  测试scrollIntoViewIfNeeded---true
</button>
<button onclick="moveOther()" class="btn-style">
  测试scrollIntoViewIfNeeded---false
</button>
<button onclick="moveScrollIntoView(true)" class="btn-style">
  测试scrollIntoView--true
</button>
<button onclick="moveScrollIntoView(false)" class="btn-style">
  测试scrollIntoView--false
</button>
<button onclick="moveScrollIntoView({behavior: 'smooth', block: 'start', inline: 'nearest'})"
        class="btn-style">
  测试scrollIntoView--动画
</button>
<ul>
  <li class="item-style">
    1
  </li>
  <li class="item-style">
    2
  </li>
  <li class="item-style">
    3
  </li>
  <li class="item-style">
    4
  </li>
  <input type="text" placeholder="请输入" id="input-style" />
  <li class="item-style">
    5
  </li>
  <li class="item-style">
    6
  </li>
  <li class="item-style">
    7
  </li>
  <li class="item-style">
    8
  </li>
</ul>
<script>
  var ele = document.getElementById('input-style')

  // 测试元素将在其所在滚动区的可视区域中居中对齐
  function moveCenter() {
    setTimeout(() => {
        ele.scrollIntoViewIfNeeded()
      },
      500)
  }

  // 测试元素将与其所在滚动区的可视区域最近的边缘对齐
  function moveOther() {
    setTimeout(() => {
        ele.scrollIntoViewIfNeeded(false)
      },
      500)
  }

  // 测试scrollIntoView, 根据可见区域最靠近元素的哪个边缘,
  //元素的顶部将与可见区域的顶部边缘对准,或者元素的底部边缘将与可见区域的底部边缘对准。
  function moveScrollIntoView(content) {
    setTimeout(() => {
        ele.scrollIntoView(content)
      },
      500)
  }
</script>
</body>
</html>

 

相关文章:

  • 类数组转化为真实的数组
  • WebStorm设置编辑器背景图片
  • 前端跳槽潮中面试官希望看到什么亮点?
  • 使用lighthouse分析你的网站性能
  • CSS选择器之兄弟选择器(~和+)
  • JS实现字符串翻转的方法分析
  • js 函数重载
  • 从两个角度理解为什么 JS 中没有函数重载
  • Promise.all和Promise.race区别,和使用场景
  • js 判断当前时间是否处于某个时间段内
  • 请描述一下 cookies,sessionStorage 和 localStorage 的区别
  • node -v没有作用
  • edited
  • 笔记本尺寸
  • 关于冒烟测试和回归测试的概念
  • C++类中的特殊成员函数
  • Electron入门介绍
  • ES6简单总结(搭配简单的讲解和小案例)
  • Iterator 和 for...of 循环
  • java8 Stream Pipelines 浅析
  • Java程序员幽默爆笑锦集
  • MySQL的数据类型
  • MySQL用户中的%到底包不包括localhost?
  • mysql中InnoDB引擎中页的概念
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 老板让我十分钟上手nx-admin
  • 一些css基础学习笔记
  • 走向全栈之MongoDB的使用
  • (Python第六天)文件处理
  • (多级缓存)多级缓存
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (算法二)滑动窗口
  • (已解决)什么是vue导航守卫
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)iOS字体
  • (转)程序员技术练级攻略
  • (转)树状数组
  • ***检测工具之RKHunter AIDE
  • .naturalWidth 和naturalHeight属性,
  • .NET Core Web APi类库如何内嵌运行?
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net6Api后台+uniapp导出Excel
  • .net访问oracle数据库性能问题
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET命名规范和开发约定
  • .NET与 java通用的3DES加密解密方法
  • .考试倒计时43天!来提分啦!
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [ABC294Ex] K-Coloring
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [C/C++]数据结构 堆的详解
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [Electron] 将应用打包成供Ubuntu、Debian平台下安装的deb包
  • [HeMIM]Cl,[AeMIM]Br,[CeEIM]Cl,([HO-PECH-MIM]Cl,[HOOC-PECH-MIM]Cl改性酚醛树脂