jQuery从按钮onclick跳转或滚动到页面上的某个位置,div或目标

IT技术 javascript jquery html css scroll
2021-02-23 18:09:57

当我点击一个按钮时,我希望能够向下跳或滚动到页面上的特定 div 或目标。

$('#clickMe').click(function() {
    //jump to certain position or div or #target on the page
});

我怎样才能做到这一点?

2个回答

我会将链接的样式设置为看起来像一个按钮,因为这样就没有 js 回退。


所以这就是您可以使用 jquery 为跳转设置动画的方式。No-js fallback 是没有动画的正常跳转。

原始示例:

jsfiddle

$(document).ready(function() {
  $(".jumper").on("click", function( e ) {

    e.preventDefault();

    $("body, html").animate({ 
      scrollTop: $( $(this).attr('href') ).offset().top 
    }, 600);

  });
});
#long {
  height: 500px;
  background-color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Links that trigger the jumping -->
<a class="jumper" href="#pliip">Pliip</a>
<a class="jumper" href="#ploop">Ploop</a>
<div id="long">...</div>
<!-- Landing elements -->
<div id="pliip">pliip</div>
<div id="ploop">ploop</div>


链接的实际按钮样式的新示例,只是为了证明一点。

一切都基本相同,除了我将类更改.jumper.button并添加了 css 样式以使链接看起来像按钮。

Button styles example

OP 提到他们想使用按钮。
2021-05-10 18:09:57
$("html, body").scrollTop($(element).offset().top); // <-- Also integer can be used
解决方法是添加 $("body, html").scrollTop(...)
2021-04-17 18:09:57
嘿,你必须替换$(element)$("#goHere"). $("body")将保持原样,因为我们要移动主体的滚动条。
2021-04-20 18:09:57
这段代码在 chrome 中很好用,但在 Firefox 中不行,至少在 ff 21.0 中不行:(
2021-04-22 18:09:57
我想达到这个效果,但我是n00b。这段代码去哪里了?
2021-05-07 18:09:57
无法让它工作,我已经由 div #goHere 指定了 body 所在的位置,我需要它向下滚动页面到特定的 div。干杯
2021-05-10 18:09:57