Javascript 滚动到下一步<;文章>;

Javascript 滚动到下一步<;文章>;,javascript,html,Javascript,Html,我正在尝试创建一个JavaScript函数,每当按下向下箭头键时,它就会滚动到下一篇文章。我所有的HTML元素都是动态的,都是没有ID的文章标签。到目前为止,我的脚本可以识别按下的向下键,但从这一点上看,我不知道如何创建一个函数,该函数将向下滚动到下一篇文章标签,而不命名文章或类似的东西 document.addEventListener('keydown', function(e){ if(e.keyCode === 40) { // function to scro

我正在尝试创建一个JavaScript函数,每当按下向下箭头键时,它就会滚动到下一篇文章。我所有的HTML元素都是动态的,都是没有ID的文章标签。到目前为止,我的脚本可以识别按下的向下键,但从这一点上看,我不知道如何创建一个函数,该函数将向下滚动到下一篇文章标签,而不命名文章或类似的东西

document.addEventListener('keydown', function(e){
    if(e.keyCode === 40) {
        // function  to scroll down
    }});

我想我需要创建一个变量,它只是HTML页面中的任何文章元素。这可能吗?如果是这样的话,我将如何做到这一点,并使函数向下滚动到下一篇文章?提前谢谢

您正在查找
窗口。滚动到
函数。你们所需要的只是确定下一篇文章的Y偏移量。您可以通过计算该节点的
offsetTop
(加上其所有
offsetParent
节点)来完成此操作


另一种解决方案:使用
element.scrollIntoView()
element.scorlintoviewIfneeded()
。它也是跨浏览器的,但我更喜欢第一种解决方案,因为它允许您控制动画,而且即使在最旧的浏览器中也可以工作。

您希望只包含一篇文章/页面吗?或者使用类似于(我的意思是从行为的角度来看)将所有文章放在同一页上的方法可以吗?只有一个页面可以无限滚动。我的想法是使用JavaScript函数简单地向下滚动到下一个页面。因此,我想我应该对href=“#nextArticle”说“不”,看看这个:这是一个正确的想法-如果你没有简单的方法来跟踪文章,我建议在视口中最突出的文章或类似的东西上切换“活动”类。通过向上或向下按,您可以使用$('article.active').next()或$('article.active').prev()和window.scrollTo()找到下一篇或上一篇文章,直到找到元素的偏移量。这对我来说是有意义的,我尝试过这样做。但每当我现在按下向下箭头,chrome的控制台就会告诉我“文章”没有定义。正如Steve Adams所说,这里的主要问题不是滚动,而是获取正确的元素(文章)。您可以在页面上找到所有文章(
document.querySelectorAll(“.article class name”)
),然后将它们循环,将每个元素的偏移量与当前的
窗口进行比较。滚动
。里奇·希区柯克(Rich Hitchcock),我更喜欢scrollTo,因为当你只需要跳转到某个地方时,这种情况很少见,你更希望跳转几个步骤来制作滚动运动的动画。这样您就可以找到滚动位置和所需位置之间的差异,并在setInterval中调用scrollTo。