Wpadłem ostatnio na pomysł aby zaktualizować skrypt Fancybox z wersji 2x na 3.x. Przesiedziałem nad tym wczoraj bite kilka godzin o 4:00 poddałem się.
Potrzebuje docelowo ustandaryzowac okienka, czyli potrzebowałbym trzy wersje. FULL SCREEN, "duże" dla dużych okien np 80% okna, albo wartosc w px i mniejsze dla małych formularzyków np o szerokosci 500 px.
Te trzy rodzaje okienek chciałem pogrupować w funkcje, ponieważ czasami bede je przypisywałdo odnośnika za pomocą rel="" a czasami bede wywoływał samą funkcje.
Nie rozumie jakie zmiany zaszły w fancybox, że nie mogę uruchomić funkcji tak jak we wcześniejszych wersjach, poniżej moje próby na kilka sposobów otwierania okienek:
Mam taki kod.
$(document).ready(function () { $.fancybox.defaults.buttons = [ 'slideShow', 'fullScreen', 'thumbs', 'download', 'close' ]; //ta funkcja nie dziala, nie wiem dlaczego. czy w wersji 3.0 musi być $.fancybox.open(), albo .start() na końcu ? //Funkcja generuje: $.fancybox is not a function function fancybox_normal(hrefff) { $.fancybox({ href: hrefff, //niewidze w dokumentacji 3.x tego parametru, być może to jest problem //width: 1030, //height: '75%', //'overlayColor': '#000', //'autoScale': false, //'transitionIn': 'none', //'transitionOut': 'none', type: 'iframe' //'padding': 0, }); } // use .one() so that the handler is executed at most once per element ? - niewystarczy on()? $('a[rel=popup_iframe], input[rel=popup_iframe]').on('click', function () { fancybox_normal( $(this).attr('href') ); return false; }); //wersja med, parametry ma takie jak fulscreen 100procent, parametry musze dopracować. function popup_iframe_med(me) { $(me).fancybox({ //zastanawiam się dlaczego tutaj w takeij formie można przypisać element 'me' href : $(me).attr('href'), type : 'iframe', opts : { 'autoScale': true, 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'speedIn': 500, 'speedOut': 300, 'autoDimensions': true, 'centerOnScroll': true, // remove the trailing comma!! console.log( 'done!' ); } } }); // fire the click event after initializing fancybox on this element // this should open the fancybox } $('a[rel=popup_iframe_med], input[rel=popup_iframe_med]').on('click', function () { popup_iframe_med( this ); return false; }); //tutraj chciałem wersje fullscreen - function popup_iframe_100procent(me) { alert('100procent'); $.fancybox.open({ src : me, type : 'iframe', opts : { 'autoScale': true, 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'speedIn': 500, 'speedOut': 300, 'autoDimensions': true, 'centerOnScroll': true, // remove the trailing comma!! - ? fullScreen : { autoStart: true }, console.log( 'done!' ); } } }); } $('a[rel=popup_iframe_100procent], input[rel=popup_iframe_100procent]').on('click', function () { popup_iframe_100procent( $(this).attr('href') ); return false; }); });
Na stronie poszczególne okienka wywołujetak:
<input type="button" value="Wywołaj - 100proc " class="mobile_show" rel="popup_iframe_100procent" href="plik.php"> <input type="button" value="Wywołaj - med " class="mobile_hide" rel="popup_iframe_med" href="plik.php"> <input type="button" value="Wywołaj - normal " class="mobile_hide" rel="popup_iframe" href="plik.php"> //+ czasami tek <input type="button" value="Wywołaj z funkcji - 100proc" onClick="popup_iframe_100procent( 'plik.php' )">
Proszę o podpowiedź, co z tym zrobić?