Javascript 如何在jquery中向下滚动

Javascript 如何在jquery中向下滚动,javascript,jquery,json,Javascript,Jquery,Json,我有一个用户应该填写的问题列表。“是”或“否”类型的问题是那些可以根据所选内容转移到另一个问题编号的问题。例如,单选按钮中的问题 你结婚了吗? 对 没有 $('body,html').animate({scrollTop:$(“#”+anyQuestionId.offset().top},1000) 如果回答为是,我想滚动到问题2,如果回答为否,我想滚动到问题10。 这个代码示例并没有把我带到确切的问题编号 如何在jquery中实现这一点?下面是它的工作示例 如果你想检查所选内容,你可以将其作为

我有一个用户应该填写的问题列表。“是”或“否”类型的问题是那些可以根据所选内容转移到另一个问题编号的问题。例如,单选按钮中的问题

  • 你结婚了吗? 对 没有
  • $
    ('body,html').animate({scrollTop:$(“#”+anyQuestionId.offset().top},1000)

    如果回答为是,我想滚动到问题2,如果回答为否,我想滚动到问题10。 这个代码示例并没有把我带到确切的问题编号


    如何在jquery中实现这一点?

    下面是它的工作示例


    如果你想检查所选内容,你可以将其作为你想要做出反应的字段的事件句柄,在这个句柄中,你可以检查值,如果它是你想要的,你将滚动,否则不会滚动,但要明智地考虑它(即使你选择了什么,如果它不会对用户造成太大的麻烦).

    您需要观看并捕获单选按钮单击事件,如下所示:

    $('.radio input').on('click', function(el){
        console.log( $(this).prop('checked') )
        if( $(this).prop('checked') ){
            $('body,html').animate({scrollTop: $(".red").offset().top}, 1000);
        }
    })
    
    以下是演示:


    hth,k

    唯一需要更改的是
    scrollTop
    的值。您可以简单地添加或减去要偏移滚动的像素数。例如:

    $('html, body').animate({
            scrollTop: $("#"+anyQuestionId).offset().top + 50
    }, 1000);
    
    这里有一个例子。如果单击第一个元素,它将滚动50像素,超出通常的位置


    希望这有帮助

    为什么不创建一个具有唯一
    id
    属性的
    div
    ,并使用jQuery将当前问题的文本写入该元素?然后,根据访问者给出的答案,使用jQuery选择下一个问题,清除
    div
    的内容,并将新问题的文本写入其中?我认为滚动总是很容易出错,所以你最好简单地在一个特定的元素中写入和清除文本。你能给出JSFIDDLE中的示例代码吗?为了回答这个问题,我们需要更多的信息。这里有一个可以工作()的提琴示例,但是如果没有更多的上下文,就无法找出哪里出了问题。如其他人所述;您包含的那行代码看起来是正确的,因此问题一定在代码中的其他地方。