2011-03-22 7 views
6

मेरी साइट पर मैं एक Fancybox खोलता हूं जिसमें IFRAME सामग्री है। क्या एक लिंक उस पर क्लिक होने पर फैंक्सबॉक्स के आकार को अपडेट करना संभव है?फैंक्सबॉक्स - iframe सामग्री के साथ fancybox का आकार अपडेट कर रहा है?

उदाहरण के लिए, मैंने इसे शुरू में 535 पीएक्स चौड़ाई पर सेट किया है, जब एक विशिष्ट लिंक क्लिक किया जाता है, तो मैं चाहता हूं कि फैंक्सबॉक्स 900px चौड़ाई का आकार बदल जाए।

कोई विचार यह है कि मैं इसे कैसे प्राप्त कर सकता हूं?

धन्यवाद!

उत्तर

18

मुझे लगता है कि मैं सिर्फ एक ही समस्या है और मेरे मामले में, fancybox.resize काम नहीं किया लेकिन यह मेरे लिए काम किया: पोस्ट करने

$("#lightbox").fancybox({ 
    'hideOnContentClick' : true, 
    'width' : 500, 
    'type' : 'iframe', 
    'padding' : 35, 
    'onComplete' : function() { 
    $('#fancybox-frame').load(function() { // wait for frame to load and then gets it's height 
     $('#fancybox-content').height($(this).contents().find('body').height()+30); 
    }); 
    } 
});

क्रेडिट इयान निहार करने के लिए यहाँ है कि: http://www.ianhoar.com/2011/08/25/jquery-and-fancybox-how-to-automatically-set-the-height-of-an-iframe-lightbox/

+10

Fancybox वी 2-संस्करण: \t \t '\t \t $ ('fancybox।') Fancybox ({ \t \t \t प्रकार:। 'आइफ्रेम', \t \t \t afterShow:। function() { \t \t \t \t $ ('। fancybox-आइफ्रेम') लोड (function() { \t \t \t \t \t $ ('फैंक्सबॉक्स-भीतरी') ऊंचाई ($ (यह)। सामग्री()। ('शरीर')। ऊंचाई() + 30); \t \t \t \t}); \t \t \t} \t \t}); ' –

+0

@AdrianvanVliet मैं फैंसी बॉक्स की वर्डप्रेस प्लगइन के लिए यह कोड कहां जोड़ सकता हूं? –

0
$('a', $('#youriframeID').contentDocument).bind('click', function() { 
    preventDefault(); 
    $('#yourIframeID').attr('src', $(this).attr('href')); 
    $('#yourIframeID').load(function() { 
     $.fancybox.resize; 
    }); 
}); 

यदि आपके आईफ़्रेम के भीतर 'ए' क्लिक किया गया है, तो डिफ़ॉल्ट ईवेंट अवरुद्ध हो जाएंगे। इसके बजाय, हम आपके आईफ्रेम के स्रोत को बदलते हैं। जब इसे लोड किया जाता है, तो # .fancybox.resize सामग्री के संबंध में स्वचालित रूप से फैंसीबॉक्स का आकार बदल देगा। यह एक विचार है, इसलिए कोड शायद अभी तक काम नहीं करेगा। आपको सही रास्ते पर जाने में मदद करने के लिए।

3

जो लोग यहाँ आ fancybox 2 का उपयोग कर सकता है के लिए:

इस कोड है कि मुझे

$(".iframe").fancybox({ 
        autoSize: false, 
        autoDimensions: false, 
        width: 630, 
        height: 425, 
        fitToView: false, 
        padding: 0, 
        title: this.title, 
        href: $(this).attr('href'), 
        type: 'iframe' 
       }); 
के लिए काम किया है
+0

सेटिंग ऊंचाई और चौड़ाई मेरे लिए भी काम करती है, यहां तक ​​कि ऑटोसाइज के साथ: सत्य – obie

-1

यह fancybox v2.1.4 पर मेरे लिए काम करता

$('#myid').fancybox({ 
    closeBtn : false, 
    padding  : 0, 
    preload  : true, 
    onUpdate : function(){ 
     $.fancybox.update(); 
    } 
}); 
+3

'ऑनअपडेट' ईवेंट हैंडलर में '$ .fancybox.update()' जोड़ना एक अनंत लूप का कारण बनता है जो आपके सीपीयू को खाएगा। यहां एक प्रयोग है, 'console.log (" अपडेट ट्रिगर ") से ऊपर एक पंक्ति जोड़ें; फिर ब्राउज़र कंसोल का उपयोग करके देखें कि कितनी बार कहा जा रहा है ... – Lankymart

संबंधित मुद्दे