2015-05-28 2 views
5

Я пытаюсь предотвратить прокрутку фоновой страницы, когда Fancybox открыт. Это помощники: { наложение: { заблокировано: true } не работает для iPad и iPhone (и мне просто нужно исправить это на мобильных устройствах). Я не могу найти для этого никаких решений. Он существует? ..Fancybox накладные свитки на iPhone или iPad

+0

Эй, @ крис-крылысова, можете ли вы выбрать ответ и отметить его принятым – Crimbo

ответ

2

«Принудительно» работать в подобной среде, как вы описали. Я столкнулся с одной и той же проблемой. На самом деле есть много ответов о прокрутке и переполнении, в основном связанных с настройками инициализации Fb, но ни один из ответов, данных в любом месте, не принесет никакой пользы - я думаю, вы хорошо осведомлены.

Однако в моем конкретном случае я наткнулся на исправление, подтвержденное браузером, которое, я уверен, является тем, что вам нужно.

При первой инициализации Fancybox не забудьте установить значения css в положение тела, зафиксированные при открытии окна Fb (путем добавления обратного вызова afterShow), затем удалите эту настройку при закрытии окна (я использую обратный вызов afterClose). Видя, что мы хотим/нуждаемся только в этом исправлении, применяемом к iProducts, давайте обернем фактический код изменения CSS в состоянии, вызывающем функцию, которая проверяет userAgent на соответствие. Например:

function applePie() { 
    return (navigator.userAgent.match(/(iPhone|iPod|iPad)/i)); 
} 

$('.fancy-overlay').fancybox({ 
    your: 'settings', 
    afterShow: function() { 
     if (applePie()) { $('body').css({'position': 'fixed'}); } 
    }, 
    afterClose: function() { 
     if (applePie()) { $('body').css({'position': ''}); } 
    } 
}); 
0

Fancy имеет свойство scrolling: 'hidden', для скрытия свитка. См. Ниже код

$(document).ready(function() { 
      $('.fancybox').fancybox({ 
       scrolling: 'hidden', 
       wrapCSS: 'img-gallery', 
       helpers: { 
        overlay: { 
         locked: true 
        } 
       } 
      }); 
     }); 
Смежные вопросы