首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何平滑地滚动到纯JavaScript中的元素

如何平滑地滚动到纯JavaScript中的元素
EN

Stack Overflow用户
提问于 2018-08-05 05:23:00
回答 4查看 29.8K关注 0票数 20

我想在不使用jQuery的情况下平滑地滚动到一个元素--只使用纯javascript。我希望一个通用的功能,能够顺利地向下滚动和向上滚动到文档中的特定位置。

我知道我可以在jQuery中使用以下内容:

代码语言:javascript
复制
$('html, body').animate({
     scrollTop: $('#myelementid').offset().top
}, 500);

如果只用javascript我该怎么做呢?

这就是我想要做的:

代码语言:javascript
复制
function scrollToHalf(){
  //what do I do?
}
function scrollToSection(){
 //What should I do here?
}
代码语言:javascript
复制
<input type="button" onClick="scrollToHalf()" value="Scroll To 50% of Page">
    <br>
    <input type="button" onClick="scrollToSection()" value="Scroll To Section1">
    <section style="margin-top: 1000px;" id="section1">
      This is a section
</section>

在jquery中,我会这样做:

代码语言:javascript
复制
html, body{
  height: 3000px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" onClick="scrollToHalf()" value="Scroll To 50% of Page">
<br>
<input type="button" onClick="scrollToSection()" value="Scroll To Section1">
<section style="margin-top: 1000px;" id="section1">
  This is a section
</section>
<script>
function scrollToHalf(){
  var height = $('body').height();
	$('html, body').animate({
         scrollTop: height/2
    }, 500);
}
function scrollToSection(){
	$('html, body').animate({
         scrollTop: $('#section1').offset().top
    }, 500);
}
</script>

编辑:我也希望能够平滑滚动到页面上的某个位置

编辑: CSS解决方案也是受欢迎的(尽管我更喜欢javascript解决方案)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51689653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档