使用setTimeout滚动div的内容

时间:2015-03-18 01:35:47

标签: jquery css scroll

你们能告诉我这个剧本有什么问题吗? 它假设在延迟20秒后将父元素的内容滚动到子元素。 父亲是没有滚动条的溢出隐藏滚动的东西,但我认为这是无关紧要的。

编辑:错字并将#childelement更改为href。它仍然无法正常工作。我在子元素中有href元素,它想要滚动。

<script>
setTimeout(
function(){

var target = $( $(this).attr('href'));

if( target.length ) {
    event.preventDefault();
    $('#parentelement').animate({
        scrollTop: target.offset().top
    }, 1000);
}
},
20000
);
</script>

1 个答案:

答案 0 :(得分:0)

此行中有语法错误:

var target = $( $(this).attr('#childelement');

你忘了关闭括号!!

var target = $( $(this).attr('#childelement'));

另一种语法错误,没有html属性可以调用#childelement

某些合法的html属性class id href等..

示例:

var className = $('.ClassName').attr('class');

对于您的任务,这就是您所需要的:

  setTimeout(function() {

    var target = $( $('a[href^="#"]').attr('href') );

    if( target.length ) {
        $('html, body').animate({
            scrollTop: target.offset().top
        }, 1000);
    }

    }, 2000);

<强> LIVE DEMO

这将像你期望的那样在2秒后触发滚动动画。