2012-10-17 70 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.它似乎已經糾正了現在的問題,但您確實失去了良好的效果。我希望這能夠幫到你。