【问题标题】:scroll to the next div on button click单击按钮滚动到下一个 div
【发布时间】:2017-12-20 16:44:12
【问题描述】:

我正在构建一个右下角有一个 div 的网站。无论您向上或向下滚动多远,这始终是可见的和浮动的。一旦你点击它,它应该向下滚动到下一个 div。该网站是一个长滚动页面网站。有 5 个 div 相互堆叠。我怎样才能做到这一点?我正在使用 JQuery 和 scrollTop 来尝试实现这一点,但它不起作用。提前致谢。

【问题讨论】:

  • 能否提供文本格式的代码?很难解析图像...
  • 你应该使用<a name="">元素来强制关注页面位置,不需要javascript

标签: jquery html scrolltop


【解决方案1】:

我会通过给每个<div> 一个ID 来解决这个问题,并使右下角的<div> 包含一个<a>,默认href 为href='#<firstdiv>'。从那里,您可以将每个<div> ID 放入一个数组中,然后单击循环浏览它们。所以你的右下 div 看起来像这样

<div><a onclick="cycle(this);" href="#first_div"></a></div>

您要跳转到的个人&lt;div&gt;s 看起来像这样

<div id="first"></div>
<div id="second"></div>
<div id="third"></div>

你的 JS 就是这个

$( document ).ready(function() {
    var divs = ["first", "second", "third"];
    var counter = 0;
});

function cycle(element) {
    $(element).attr("href", divs[counter]);
    if(counter < divs.length - 1) {
        counter++;
    }
    else {
        counter = 0;
    }
}

虽然不是解决问题的最模块化的方法,但这应该提供一个相当简单的解决方案。

【讨论】:

  • 嗨@Gladdstone 谢谢你的回答。这是说 divs 没有定义。你能提供一个 js fiddle 吗?
  • 抱歉,我在 document.ready 函数中定义了变量,只需将“divs”和“counter”的声明移到您将放置任何其他全局变量的位置之外。或者您可以将循环函数放在 document.ready 函数中,该函数也应该可以将变量放在范围内。
  • 非常感谢!我把它搬到了外面!它完美地工作!无论如何,是否有动画跳转到下一个 div 到它向下滚动的位置?
  • 谷歌“平滑滚动”,你会发现一些很好的资源。在 jQuery 中很容易实现。
  • 非常感谢!我去做!我感谢所有的帮助! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
  • 2015-07-09
  • 1970-01-01
  • 2015-12-22
相关资源
最近更新 更多