美文网首页
平滑滚动 - 回到顶部

平滑滚动 - 回到顶部

作者: 人话博客 | 来源:发表于2019-08-09 00:41 被阅读0次

在开发 Web 页面时,让页面会到某一个指定的位置是非常常见的需求.

比如回到顶部功能.


1.

直接在定义定义一个锚点.点击一个指向此锚点的标签即可.

<style>
    * {
      margin: 0;
      padding: 0;
    }

    a.gototop {
      position: fixed;
      right: 0;
      bottom: 20px;
      padding: 10px 20px;
      background-color: orange;
      color: #fff;
      text-decoration: none;
    }

    .box {
      height: 400px;
      background-color: #2890FF;
      margin: 20px auto;
    }

    header {
      height: 80px;
      line-height: 80px;
      color: #fff;
      text-align: center;
      font-size: 30px;
      font-weight: 700;
      background-color: orange;
    }

  </style>
</head>
<body>
  <!-- 回到顶部的锚点 -->
  <header id="top">this is top of the page</header>
  <!-- 回到顶部的按钮 -->
  <a class="gototop" href="#top">回到顶部</a>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</body>

点击回到回到顶部按钮,页面将直接回到指定的锚点处.

此时没有任何动画效果,是很生硬的过来的.


2.

直接使用 css3 新的样式属性 scroll-behavior:'smooth' 即可.

将需要滚动的元素设置这个样式即可.

html {
      scroll-behavior: smooth;
}

<body>
  <!-- 回到顶部的锚点 -->
  <header 420123456="top">this is top of the page</header>
  <!-- 回到顶部的按钮 -->
  <a class="gototop" href="#top">回到顶部</a>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</body>

3.

如果需要更细粒度的控制.

  • css3 : scroll-behavior : smooth
  • js: element.scrollTo(x,y)

用 css 设置需要平滑过渡的元素.

用 js 找到要滚动的元素进行滚动.


4.

利用H5 的新 API element.scrollIntoView 并指定 options 即可.

element.scrollIntoView({
    behavior: 'auto | smooth | auto(default)',
    block: 'start | center | end | nearest (default)'
})

总结:

  • 很粗的粒度去控制简单的平滑滚动效果,直接使用 scroll-behavior: 'smooth' 即可.套用上这个元素滚动起来就是平滑的.
  • 细粒度的控制可以搭配 scroll-behavior: 'smooth' & element.scrollTo(x,y) 来完成.
  • 也可以使用 H5 新的 API element.scrollIntoView([options]) 来实现平滑滚动.

相关文章

  • 平滑滚动 - 回到顶部

    在开发 Web 页面时,让页面会到某一个指定的位置是非常常见的需求. 比如回到顶部功能. 1. 直接在定义定义一个...

  • Android停止(结束)惯性滚动

    场景:当页面滚动超过一定距离后,显示回到顶部的按钮,点击按钮平滑滚动回顶部。 实现:监听页面滚动距离,与一特定值比...

  • jQuery点击锚点平滑滚动

    点击锚点平滑滚动到相应页面位置: .. "返回顶部"按钮效果:向下滚动页面出现 按钮,点击返回顶部。 …………EN...

  • JS 平滑滚动顶部

    js平滑滚动到顶部,底部,指定地方 采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquer...

  • 前端开发遇到的问题

    CSS 1、页面平滑滚动 问题: 需要在滚动到顶部的时候有缓慢滚动的动画效果 方案: scroll-behavio...

  • 平滑滚动和涉及到的元素尺寸

    网页常见的返回顶部,这个平滑滚动效果有三种实现方式: 给 html 加 CSS 属性,behavior 滚动 DO...

  • vue下返回顶部功能实现

    vue下返回顶部功能实现 Vue中点击按钮回到顶部(滚动效果) vue中回到顶部 vue滚动到一定位置显示置顶元素...

  • vue 平滑回到顶部

  • 百度/微信小程序点击按钮回到顶部(scrollTop=0)/点击

    一、HTML部分 二、JS部分页面滚动回到顶部 1、监听页面滚动事件 2、回到顶部 3、拨打电话 祝在座的各位女程...

  • ES6解决问题的代码总结

    如何分辨设备是移动设备还是桌面设备? 如何获取当前页面的滚动位置? 如何平滑滚动到页面顶部? 如何创建一个包含当前...

网友评论

      本文标题:平滑滚动 - 回到顶部

      本文链接:https://www.haomeiwen.com/subject/ycvqjctx.html