0

ファンシーボックスを開いたときにブラウザのスクロールを無効にしたい。そして次のコードが機能します:

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

ただし、モバイル デバイスでは、fancybox を開くときにウィンドウが一番上にジャンプします。この動作は、locked: true パラメータに依存します。オーバーレイをロックしてジャンプを防ぐにはどうすればよいですか?

次のようなさまざまな決定:

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

また

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

動作しますが、すべてのモバイル ブラウザで動作するわけではありません!

4

1 に答える 1

0

私もこの問題に対処しなければならず、それは私を怒らせました。ほぼすべてのオプションを試し、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

于 2016-05-18T05:40:01.890 に答える