jQuery.Cycle在某些刷新时偏移图像

时间:2012-05-13 22:33:19

标签: jquery jquery-plugins jquery-cycle

我很难理解是什么原因导致我的jQuery脚本在第一次加载时正确加载(点击导航链接),但是在浏览器中点击“刷新”后就失败了。

这是一个简单的脚本,可循环显示一系列图像,全尺寸并以流畅的布局为中心。加载后,脚本应为图像设置适当的边距,以便将其置于屏幕中心。当您单击导航中的链接时,它似乎工作。当我刷新页面时,脚本失败,并为图像提供了一个左边距离的两倍,将照片偏移到屏幕的一侧。

幻灯片可以在这里看到。您应该能够通过刷新页面来复制错误,然后点击导航中的蓝色“tiburon residence”链接。 (截图:http://imgur.com/a/z2hki

http://dev.christinerode.com/garyhutton/tiburon.html

我已经尝试更改我的脚本和CSS包括的顺序,以及功能,但我没有运气。为什么这只会在某些刷新时发生?

使用jquery.cycle插件,但找不到任何其他此类事件。在javascript中发生了什么以触发相同代码的不同显示?

1 个答案:

答案 0 :(得分:0)

一些建议:

将所有脚本放在</body>标记之前。这样就可以确保在进行DOM元素大小测量之前加载文档:

  <script> // jquery // </script>
  <script> // cycle.plugin </script>
  <script> // your jQ functions // </script>

</body>

您可以添加if语句来检查幻灯片是否已设置动画,以防止在动画库动画时点击次数:

$("#slide_prev").click(function(){
   if( !($('.slideshow img').is(':animated') ) ){
      $('.slideshow').cycle("previous");
   }
});
$("#slide_next").click(function(){
   if( !($('.slideshow img').is(':animated') ) ){
      $('.slideshow').cycle("next");
   }
}); 

这样可以防止我对问题的评论中的问题。

如果您仍然有错误(我不建议,但您可以尝试):

$(window).load(function(){
    // your functions
});