你们能告诉我这个剧本有什么问题吗? 它假设在延迟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>
答案 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秒后触发滚动动画。