2012-10-17 41 views
0

这可以很容易地在这里的官方示例重复:http://www.jacklmoore.com/colorbox/example1/在iPad上滚动“打破”Colorbox?

打开第一个示例,然后尝试滚动页面“硬”上下4-5次连续。彩盒可能会稍微移动一点。然后,尝试关闭彩盒。触摸彩盒外的任何地方或触摸关闭按钮似乎什么也不做。我甚至尝试手动添加一个手动$ .colorbox.close()调用和一个关闭按钮触摸事件的警报。该警报显示(实际上是两次),但Colorbox未关闭。绝对没有办法关闭它。看起来这种行为总之从根本上打破了一些东西。

它工作正常,如果你玩的很好,只是在Colorbox之外触摸或触摸关闭按钮,但如果你做任何“粗略滚动”,那么它似乎完全打破它。

所以,我有几个问题。 1.其他人可以复制这个吗? (或者我在做可怕的错误?) 2.有没有人遇到过这个? 3.如果有,是否有任何解决方法?

回答

1

编辑:这个bug已经在jQuery 1.8.3中修复了。

如果您使用的是jQuery 1.8.2,那么以下补丁将解决该问题。

--- jquery-1.8.2.js (original) 
+++ jquery-1.8.2.js (fixed) 
@@ -8615,6 +8615,9 @@ 
      delete tick.elem; 
     }), 
     tick = function() { 
+   setTimeout(function() { 
+    fxNow = undefined; 
+   }, 0); 
      var currentTime = fxNow || createFxNow(), 
       remaining = Math.max(0, animation.startTime + animation.duration - currentTime), 
       percent = 1 - (remaining/animation.duration || 0), 

如果您使用的是jQuery 1.7.1,那么下面的补丁程序将起作用。

--- jquery-1.7.1.js (original) 
+++ jquery-1.7.1.js (fixed) 
@@ -8706,6 +8706,7 @@ 

    // Each step of an animation 
    step: function(gotoEnd) { 
+  setTimeout(clearFxNow, 0); 
     var p, n, complete, 
      t = fxNow || createFxNow(), 
      done = true, 

我已经向jQuery提供了关于此bug的更多信息,请参阅ticket #12837

+0

谢谢你的调查!我更新到1.8.3,问题已修复! – rburk

1

我最近也遇到过这个问题。这个问题源于这样一个事实,即由于某种原因,jQuery中的动画优化停止更新。这会导致Colorbox在动画中不断显示相同的步骤。我能找到的唯一解决方法是更改​​Colorbox脚本以将每个淡出动画的计时属性设置为0.它似乎已经纠正了现在的问题,但您确实失去了良好的效果。我希望这能够帮到你。