2011-09-16 40 views
0

我使用顏色框(jquery的插件)來顯示一個多步驟的註冊過程。我在「iframe」模式下使用了colorbox。問題的顏色框重新加載的IFRAME內容上colorbox.resize

$('#signup').colorbox({ 
    width:  '500px', 
    height: '250px', 
    opacity: '.5', 
    scrolling: false, 
    fixed:  true, 
    iframe: true 
}); 

由於不同步驟的內容具有不同的高度,我想爲顏色框,當它加載了新的一步自動調整自身。

我用下面的代碼在iframe中的內容(只需在附近的文件結束腳本標籤):我曾試圖簡化版本

$(function() { 
    var iH = $(document.body).height(); 
    console.log("iframe height: " + iH); 
    parent.$.colorbox.resize('height', iH); 
}); 

在此之前:

parent.$.colorbox.resize(); 

但在這兩種情況下,我最終什麼似乎是一個無限循環:iframe的內容不休重載並沒有真正顯示(其實我可以看到它有時會閃爍)。 所述iFrame(第一循環期間)的過程中調整大小,因此它似乎是部分地工作。然而,新的大小似乎太小預期的內容,所以我真的不知道......

知道爲什麼這不工作,如何解決這個問題?

更新: 如果我把上面的腳本(簡版)在第二個步驟,而不是第一個,我避免了無限循環,當我點擊進入第二個步驟,第一步驟實際上是加載而不是第二步。
也是一樣,如果我把這個腳本在第三步:第一步,而不是加載。
如此看來執行,當它的「調整」功能,顏色框樣重新啓動的這一切從一開始...

+0

會發生什麼事,如果你有沒有後續的呼叫建立initialWidth和initialHeight而是高度和寬度的大小? – chim

+0

btw你還在尋找答案? – chim

+0

@chim:我有點放棄了,但我仍然很想解決這個問題。我沒有想過使用initialHeight而不是height。我明天會嘗試。 – s427

回答

2

我發現這裏的解決方案:?http://groups.google.com/group/colorbox/browse_thread/thread/fadc3d68ca764de3/c38fa24136a6abd7?pli=1

已將此添加colorbox.js(彩盒v1.3.17.2,publicMethod.resize前右R上533):

publicMethod.myResize = function (iW, iH) { 
if (!open) { 
    return; 
} 
if (settings.scrolling) { 
    return; 
    } 
var speed = settings.transition === "none" ? 0 : settings.speed; 
$window.unbind('resize.' + prefix); 
settings.w = iW; 
settings.h = iH; 
$loaded.css({ 
    width: settings.w, 
    height: settings.h 
}); 
publicMethod.position(speed); 
}; 

,我已將此添加到頁面打開在iframe:

$(document).ready(function(){ 
    $(window).bind('load', function() { 
     var frameWidth = $(document).width(); 
     var frameHeight = $(document).height(); 
     parent.$.fn.colorbox.myResize(frameWidth, frameHeight); 
    }); 
}); 

要綁定顏色框功能,我用這個選項:

$('.item').colorbox({ 
    transition: 'none', 
    iframe  : true, 
    scrolling : false 
}); 
+0

這似乎是工作,非常感謝你!但有一個問題:如果它的內容大於先前的內容,似乎只調整彈出窗口的大小 - 不是如果它較小(在這種情況下它不調整大小)。任何想法爲什麼發生這種情況 – s427

+0

我不太確定,對不起。對於我在Colorbox工作的項目,需要進行如此多的修改,以至於我最終決定從頭開始構建一個燈箱。 –

+0

是的,我明白你的意思。我爲這個問題放棄了自己(出於各種原因)。無論如何,感謝您的幫助! – s427