Как запустить jQuery Fancybox при загрузке страницы? - PullRequest
94 голосов
/ 30 апреля 2009

Я хотел бы запустить Fancybox (например, версия Fancybox модального или лайтбокса) при загрузке страницы. Я мог бы привязать его к скрытому тегу привязки и запустить событие click этого тега привязки через JavaScript, но я бы предпочел просто запустить Fancybox напрямую и избежать использования дополнительного тега привязки.

Ответы [ 17 ]

1 голос
/ 30 марта 2016

В случае, если у вас нет кнопки для нажатия. Я имею в виду, если вы хотите открыть его в ответе на ajax, это будет выглядеть так:

$.fancybox({
      href: '#ID',
      padding   : 23,
      maxWidth  : 690,
      maxHeight : 345
});
1 голос
/ 09 августа 2011

Вы также можете использовать встроенную функцию JavaScript setTimeout() для задержки отображения окна после того, как DOM будет готов.

<a id="reference-first" href="#reference-first-message">Test the Popup</a>

<div style="display: none;">
    <div id="reference-first-message" style="width:400px;height:100px;overflow:auto;">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        $("#reference-first").fancybox({
            'titlePosition'         : 'inside',
            'transitionIn'          : 'fade',
            'transitionOut'         : 'fade',
            'overlayColor'          : '#333',
            'overlayOpacity'        : 0.9
        }).trigger("click");

        //launch on load after 5 second delay
        window.setTimeout('$("#reference-first")', 5000);
    });
</script>
1 голос
/ 28 ноября 2009

Может быть, это поможет ... это было использовано в событии щелчка в календаре jQuery в полном размере (http://arshaw.com/fullcalendar/)..., но его можно использовать в более общем случае для запуска fancybox, запускаемого jQuery.

  eventClick: function(calEvent, jsEvent, view) {
      jQuery("body").after('<a id="link_'+calEvent.url+'" style="display: hidden;" href="http://thisweekinblackness.com/wp-content/uploads/2009/01/steve-urkel.jpg">Steve</a>');
      jQuery('#link_'+calEvent.url).fancybox(); 
      jQuery('#link_'+calEvent.url).click();
      jQuery('#link_'+calEvent.url).remove();
    return false;
  }
1 голос
/ 07 октября 2016
$(document).ready(function() {
    $.fancybox(
      '<p>Yes. It works <p>',
       {
        'autoDimensions'    : false,
        'width'             : 400,
        'height'            : 200,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none'
       }
    );
});

Это поможет ..

0 голосов
/ 12 марта 2014

Вы можете поместить ссылку как эта (она будет скрыта. Может быть раньше </body>)

<a id="clickbanner" href="image.jpg" rel="gallery"></a>

И рабочий атрибут rel или класс, подобный этому

$(document).ready(function() {
    $("a[rel=gallery]").fancybox({
        openEffect  : 'elastic',
        closeEffect : 'elastic',
        maxWidth    : 800,
        maxHeight   : 600
    });
});

Просто сделайте это с помощью функции запуска jquery

$( window ).load(function() {
  $("#clickbanner").trigger('click');
});
0 голосов
/ 02 августа 2018

HTML:

<a id="hidden_link" href="LinkToImage"></a>

JS:

<script type="text/javascript">
    $(document).ready(function() {
        $("#hidden_link").fancybox().trigger('click');
    });
</script>
0 голосов
/ 30 апреля 2009

возможно вы можете использовать jqmodal , это легкий и простой в использовании. Вы можете показать модальное окно, позвонив

$('.box').jqmShow() 
...