Как автоматически открыть лайтбокс prettyPhoto при загрузке страницы? - PullRequest
1 голос
/ 25 сентября 2010

Я действительно новичок в Jquery, и я нашел несколько примеров открытия лайтбокса с помощью файлов cookie и функции загрузки. Я использую пример cookie, который работает с fancybox, но я использовал prettyPhoto на всех своих сайтах и ​​действительно не хочу переходить на fancybox. Я пробовал дюжину разных способов заставить это работать, но мне не повезло. Вот мой код Любая помощь или предложения будут великолепны.

$ (Документ) .ready (функция () {

// !!! SEE THIS PLEASE !!!
// delete this line to make the modal box load only ONCE
// if you let it set to 'false' it will show every time .. set it to 'true' and it will never show
$.cookie("modal", 'false')

/**
  *  MODAL BOX
  */
// if the requested cookie does not have the value I am looking for show the modal box
if($.cookie("modal") != 'true')
{
    alert("sometext");

var где = "http://images.motortrend.com/photo_gallery/112_0611_39z+2006_bugatti_veyron+interior.jpg"; var title = ""; var comment = "";

функция showLbox () { $ .prettyPhoto.open (где, заголовок, комментарий); } // при загрузке страницы показать модальное поле // больше информации об опциях вы можете найти на сайте fancybox

    // in the message is a link with the id "modal_close"
    // when you click on that link the modal will close and the cookie is set to "true"
    // path "/" means it's active for the entire root site.. if you set it to "/admin" will be active on the "admin" folder
    // expires in 7 days
    // "modal" is the name i gave the cookie.. you can name it anything you want
    $('#modal_close').live('click', function(e) {
        e.preventDefault();
        $.cookie("modal", "true", { path: '/', expires: 7 });


    });
}

});

1 Ответ

3 голосов
/ 31 марта 2011

Вам нужно будет вызвать функцию API S.prettyPhoto.open после завершения загрузки страницы. Я поместил его в функцию $ (document) .ready (function ():

$(document).ready(function(){
            $(".gallery:first a[rel^='prettyPhoto']").prettyPhoto({animationSpeed:'fast',slideshow:10000});
            $(".gallery:gt(0) a[rel^='prettyPhoto']").prettyPhoto({animationSpeed:'fast',slideshow:10000});

            $("#custom_content a[rel^='prettyPhoto']:first").prettyPhoto({
                custom_markup: '<div id="map_canvas" style="width:260px; height:265px"></div>',
                changepicturecallback: function(){ initialize(); }
            });

            $("#custom_content a[rel^='prettyPhoto']:last").prettyPhoto({
                custom_markup: '<div id="bsap_1237859" class="bsarocks bsap_d49a0984d0f377271ccbf01a33f2b6d6" style="height:260px"></div><div id="bsap_1251710" class="bsarocks bsap_d49a0984d0f377271ccbf01a33f2b6d6"></div>',
                //changepicturecallback: function(){ _bsap.exec(); }

            });
            $.prettyPhoto.open('FMWM5.swf?width=544 &amp;height=399', '', 'Click anywhere to skip intro...');
            setTimeout("$.prettyPhoto.close()", 8000);

        });

changepicturecallback давал мне ошибку «_bsap is notfined» (замечено в firebug), поэтому я закомментировал ее.

Вот страница с записками, которую я использовал для тестирования: http://www.fortmitchellwalmart.com/prettyPhotoTest/index.html

Я не знаю, как отключить его с помощью cookie boolean, я в значительной степени новичок с javascripting и flash, но надеюсь, это поможет!

...