jQuery Smoothdivscroll ajax间歇性问题

时间:2012-05-08 09:44:29

标签: jquery html smooth-scrolling

我遇到了smoothdivscroll插件的间歇性问题。我注意到,当我加载页面时,偶尔会出现第一张图像,它只会静止不动。有时(在几次刷新之后)所有图像都会加载并开始滚动。我检查了ajaxContent.php的响应,片段响应似乎是正确的。

我目前正在使用以下示例代码:

$("#div").smoothDivScroll({
    autoScrollingMode: "always", 
    autoScrollingDirection: "endlessloopleft", 
    autoScrollingStep: 1, 
    autoScrollingInterval: 15, 
    ajaxContentURL: "ajaxContent.php"
});

ajaxContent.php是做什么的,它返回带有图像源的div的页面片段,类似于http://www.smoothdivscroll.com/lab.html的示例,其中打开了“替换内容与演示html内容”。图像src实际上是外部站点上图像的完整路径,类似于

<img src="http://example.com/image.jpg">.

返回的片段示例:

<div class="contentBox">
<img src="http://example.com/image.jpg">
</div>
<div class="contentBox">
<img src="http://example2.com/image2.jpg">
</div>

我还尝试了一个似乎运行良好的演示示例,可以减慢从外部网站加载图像导致插件无法正常工作?

1 个答案:

答案 0 :(得分:0)

是的,它可能是由于图像加载速度缓慢和/或div的CSS与“contentBox”类的一些问题造成的,这使得插件很难计算出所有元素的总宽度可滚动区域。

当Smooth Div Scroll启动时,它会检查是否指定了ajaxContentURL。如果是这样,它会从该URL加载HTML内容,并在重新计算可滚动区域的宽度后直接加载。当它重新计算可滚动区域的宽度时,它会查看直接子元素的宽度,在您的情况下,div为“contentBox”类。如果这些div没有在CSS 中指定的固定宽度,则部分/全部图像尚未完全加载Smooth Div Scroll将计算所有元素的总宽度错误。

如果所有图像宽度相同,您可以尝试为“contentBox”-divs设置固定宽度。您可以尝试的另一件事是临时剥离包装器div并使用图像标签加载HTML。