2016-04-15 3 views
1

Так что я пытаюсь использовать все, что находится за пределами моего fancybox, не закрывая его.Щелчок снаружи fancybox2

Итак, у меня установлено значение closeclick равным false. Я заставлял его перетаскивать, чтобы я мог перемещать его по экрану, но если я попытаюсь нажать на кнопку, это не позволит мне. Я исследовал повсюду, но у всех есть только способы закрыть его, щелкнув по экрану, не открывая событие вне его. Я знаю, что он запускается через iframe, поэтому он исследовал это тоже, но не повезло.

Если это невозможно, есть другой способ создания всплывающих окон. Я хочу, чтобы иметь возможность щелкнуть вещи за пределами fanxybox.

-edit через месяц.

Изучение и еще предстоит выяснить. Работал над другими проектами, затем этот снова появился. Теперь я также пытаюсь выяснить, как открыть fancybox в fancybox. Сделайте второй перетаскиваемый (не первый) и сможете щелкнуть внутри fancybox. Если fancybox не способ пойти со всем этим, есть ли другой способ сделать это.

Вот моя первая страница

$(".fancybox").fancybox({ 
       fitToView: false, 
       beforeShow: function() { 
        this.width = 1000; 
        this.height = 300; 
       } 
      }); 


    <a class="fancybox fancybox.iframe" href=""> 
<center> 
<img src="images/calendar.png" border="0" style="height: 25px; width: 25px;" /></center> 
               </a> 

Вот что он находится внутри FancyBox на другой странице.

parent.$(".fancybox").fancybox({ 
       fitToView: false, 
       beforeShow: function() { 
        this.width = 500; 
        this.height = 100; 
       }, 
       afterShow: function() { 
       $(".fancybox-wrap").draggable(); 
      } 
      }); 
<a class="fancybox fancybox.iframe" href=""> 
<img src="images/arrow-right-3.png" border="0" style="height: 25px; width: 25px;" /></a> 

Но когда я запустил этот, fancybox не вышел, он просто переходит на следующую страницу. Не уверен, что он закрывает первый, чтобы открыть этот, или если он просто перенаправляет.

Я пробовал Here, но это, похоже, не сработало. Это то, что прослушивало меня целую вечность, поэтому любая помощь будет оценена.

+0

У вас есть y наш код онлайн где-то? – EGN

ответ

1

Вы должны быть в состоянии установить опцию helpers.overlay ложь, которая будет препятствовать накладку от показа:

parent.$(".fancybox").fancybox({ 
    fitToView: false, 
    beforeShow: function() { 
     this.width = 500; 
     this.height = 100; 
     // If helpers.overlay = false doesn't work, uncomment below. 
     // $('#fancybox-overlay').remove(); 
    }, 
    helpers: { 
     overlay: false 
    }, 
    afterShow: function() { 
     $(".fancybox-wrap").draggable(); 
    } 
}); 

В противном случае, в рамках метода beforeShow, вы можете просто удалить элемент наложения. Существует область вокруг диалогового окна, которое не имеет значения (для эффекта градиента), но все остальное работает для меня.

HTH

+0

Ты потрясающий! Поэтому я могу щелкнуть снаружи, чего я хочу. Поэтому, когда я пытаюсь добавить родителя. к нему это не работает. Если я его снимаю, он работает, но он остается внутри fancybox. Так или иначе, если вы выберете его из fancybox, или я должен просто сделать первый из них больше, а затем тот, который мне нужен. Хотите попытаться сохранить все это, так что будьте потрясающе, если я могу получить fancybox за его пределами. (Я использую причудливый оверлей.удалить) – KratosMafia

+0

@KratosMafia - просто чтобы уточнить, пытаетесь ли вы инициировать новый fancybox из iframe, уже показанного в fancybox? – Gavin

+0

Хорошо. Я хочу открыть fancybox, какой я есть. Затем внутри этого fancybox откроется второй и сможет перемещать его вокруг, но сделать первый fancybox доступным. Если это имеет смысл. Но я хочу, чтобы второй fancybox также находился за пределами первого. – KratosMafia

0

два шага:

1) Установите overlayShow опцию ложной

$(".fancybox").fancybox({ 
       fitToView: false, 
       overlayShow: false, 
       beforeShow: function() { 
        this.width = 1000; 
        this.height = 300; 
       }, 
       afterShow: function() { 
        $(".fancybox-wrap").draggable(); 
       } 
      }); 

2) Установите прокладку на 0, вы можете добиться того, что при добавлении padding: 0 к вашему FancyBox контейнер или добавление его в файл CSS

.fancybox-wrap { 
    padding: 0 !important; 
}