【问题标题】:Scrolling to specific div on click event在点击事件上滚动到特定的 div
【发布时间】:2017-11-03 02:39:37
【问题描述】:

我有一个div,其类别为“第二”。单击button 时,我想滚动到页面中的该元素。下面是我使用 jQuery 编写它的方法,但我想知道如何用 vanilla JavaScript 编写它?

$("button").click(function() {
    $('html,body').animate({
        scrollTop: $(".second").offset().top},
        'slow');
});

【问题讨论】:

  • 到目前为止,您做了哪些研究,您是否尝试过在没有jQuery 的情况下这样做?如果是这样,请将它们包含在您的问题中,因为这可以帮助给出详细的答案,以解释您的尝试未按预期运行的原因,并可能提供详细的解决方案。 编辑: 还有一个HTML 的例子也很好,因为我看到这个jQuery 选择器的目标是class 名称second,所以知道哪个class 会很有帮助您想要关联取决于点击的button
  • 对于火狐,你可以使用scorllTo。但是您可能会遇到 Chrome 的问题。见here
  • 分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见How to Ask

标签: javascript jquery html css scroll


【解决方案1】:

function getPosition(element) {
        var e = document.getElementById(element);
        var left = 0;
        var top = 0;

        do {
            left += e.offsetLeft;
            top += e.offsetTop;
        } while (e = e.offsetParent);

        return [left, top];
    }

    function jumpTo(id) {
        window.scrollTo(getPosition(id));
    }
<a href="#one" onclick="jumpTo('one');">One</a>

<div style="height: 900px"></div>
<div id="one"></div>

【讨论】:

  • 你在 Chrome 上测试过这个吗?
  • 再试一次,伙计!现在我已经测试过了
  • 说说你的代码是如何工作的。只有没有信息的代码不是给出答案的好方法。
  • 因为是很简单的例子,代码很容易阅读,我的英文不好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-10
  • 2013-03-25
  • 2012-04-11
相关资源
最近更新 更多