自动滚动在回调功能上失败

时间:2015-10-11 00:25:35

标签: javascript jquery html css

我有一个从左到右自动滚动的div。我使用jQuery来实现这一点。在jQuery回调函数中,我调用了使其从左向右自动滚动的函数。但是,回调函数失败,它不会再次从左向右滚动。我做错了什么?

function scroll() {
	
    var element = document.getElementById("scroll");
    var width = element.scrollWidth;
	
    $(document).ready(function(){

	$("#scroll").animate({scrollLeft: width}, 5000, function(){ 
	scroll();
	});
    });
	
} //end of scroll()	
	
scroll(); 		
#scroll {
    display: inline-block;
    padding: .5%;
    border: 1px solid black;
    white-space: nowrap;
    width: 10%;	
    overflow-x: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "scroll">one two three four five six seven eight nine ten</div>

1 个答案:

答案 0 :(得分:1)

我认为这是由于“最大调用堆栈大小超出错误”

由于你正在调用scroll,而scroll又调用了scroll等,它会达到堆栈限制。

请参阅此答案,了解如何使用基本案例的递归函数 Maximum call stack size exceeded error

更新:这是由于scrollLeft的操作将元素向左滚动,需要在再次调用之前滚动回0