Как да заключите наслагването на fancybox, без да скачате до върха?

Искам да деактивирам превъртането на браузъра при отваряне на fancybox. И следващият код работи:

helpers: {
   overlay: {
      locked: true 
   }
},

Но на мобилни устройства прозорецът скача отгоре по време на отваряне на fancybox. Това поведение зависи от locked: true param. Как мога да заключа наслагването и да предотвратя прескачане?

Различни решения, като например:

$('html').css('overflow', 'hidden')

or

$(document.body).bind('touchmove', function(e) {
   e.preventDefault();
   e.stopPropagation();
   e.returnValue = false;
});

Работи, но не във всички мобилни браузъри!


person zozo4kin    schedule 28.10.2013    source източник
comment
Ако използвате fancybox v2.1.5, изглежда, че проблемът е решен в най-новия главен формуляр, който можете да изтеглите тук github.com/fancyapps/fancyBox/archive/master.zip   -  person JFK    schedule 28.10.2013
comment
версия: 2.1.5 (петък, 14 юни 2013 г.). Този проблем не е коригиран. (   -  person zozo4kin    schedule 29.10.2013
comment
Доколкото виждам, основната актуализация е от 9 октомври 2013 г   -  person JFK    schedule 29.10.2013
comment
Изтеглих последната версия, но има грешка.   -  person zozo4kin    schedule 31.10.2013
comment
Не съм сигурен дали това е същият проблем, но в iOS safari винаги има известно количество превъртане на гумена лента, когато движите пръста си. Ако долната навигация на Safari е видима, когато превъртате, тя изчезва, но оставя празнина и можете да видите и превъртате съдържанието отдолу през тази празнина. наздраве   -  person CMSCSS    schedule 13.05.2014


Отговори (1)


Аз също трябваше да се справя с този проблем и това ме подлуди. Опитах почти всички опции, потърсих всички въпроси и отговори в stackoverflow, но нищо не изглеждаше да работи с моя ajax-lightbox. Винаги скачах до върха. Тогава направих следното:

$(".lightboxe-fancyboxWindow").fancybox({ 
    type : 'ajax',
    href : "<?php echo $_SERVER['PHP_SELF']; ?>",
    ajax: {
        type: "POST",
        data: {     
            'data1' : information1,
            'data2' : information2
        },
    },
    autoSize: false,
    width: '60%',
    beforeShow : function() {
        $("body").css({"overflow" : "hidden", "padding-right" : "17px"});
    },
    afterClose: function () {
        $("html, body").removeAttr("style");
    },
    titleShow : false,
    helpers : { 
        overlay : {
            locked : false
        },
         title : null
    },
});

Това, което направих, беше да добавя препълване, скрито в етикета body и 17px подложка за fake-scrollbar.

person Ventilator5000    schedule 18.05.2016