如何在Javascript中自动滚动百分比或像素?

问题描述

我有这个代码可以自动滚动到特定的 ID。 我的问题是是否有可能自动滚动到带有像素或百分比的页面的某个部分而不是 id。 感谢您的帮助。

这是我的代码

        scrollTop: jQuery("#id").offset().top
    },2000);

解决方法

根据 scrollTop 的文档,它需要一个数值。这同样适用于 animate 内的用法。

所以对于设置的像素值,直接省略获取元素偏移量的功能,直接放入值即可。百分比值也是如此,但涉及到一些数学运算。

$(document).ready(function(){
  // Add smooth scrolling to all links
  $(".pixel").on('click',function(event) {

    event.preventDefault();

      $('html,body').animate({
        scrollTop: 200 //set a numeric value to scroll a set amount of pixel
      },800,function(){
      });
  });
    $(".percent").on('click',function(event) {

    event.preventDefault();
    var windowHeight = window.innerHeight;
    var percent = 90;
    var percentPixel = windowHeight * (percent / 100); // calculate the amount of pixel off a percentage

      $('html,body').animate({
        scrollTop: percentPixel
      },function(){
      });
  });
});
body,html,.main {
  height: 100%;
}

section {
  min-height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="pixel" href="#section2">Click Me to Smooth Scroll 200px</a>
<a class="percent" href="#section2">Click Me to Smooth Scroll 90%</a>

<div class="main">
  <section></section>
</div>

<div class="main" id="section2">
  <section style="background-color:blue"></section>
</div>

来源:https://www.w3schools.com/jquery/css_scrolltop.asp

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...