FancyBox 2. iframe。输入表单元素中的输入文本时,它会跳到底部

时间:2018-01-26 13:42:35

标签: javascript jquery css iframe fancybox

我的页面上有一个fancybox。在桌面上它还可以,但是当我尝试在IOS上的Safari上打开它时会失败。

iframe中的内容很长。当我开始输入时,整个页面会跳到fancybox的底部,所以我无法看到我输入的内容。如果我删除som内容以使内容适合iframe内部,则不会跳转。

javascript代码

$(".fancyBox").fancybox(
{
    openEffect: 'none',
    closeEffect: 'none',
    prevEffect: 'fade',
    nextEffect: 'fade',
    tpl: {
         closeBtn: '<div title="Close" class="btn doccit-button waves-effect'+closePadding+'" id="fancyClose">'+closeText+'</div>'
        },
    topRatio    : 0,
    fitToView           : false,    
    type                : 'iframe',
    iframe : {
           preload: false
     },
    padding             : 12,
    beforeLoad: function () {
        //console.log($(this.element).data('url'));
        if ($(this.element).data('url')) {
        var url = $(this.element).data('url');
        this.href = url
        }
    },
    beforeShow: function () {
        var fancyWidth = 1100;
        var fancyHeight = 700;
        var fancyMargin = [60,8,8,8];
        if($(this.element).data('width'))  { fancyWidth = $(this.element).data("width") };
        if($(this.element).data('height'))  { fancyHeight = $(this.element).data("height") };
        if($(this.element).data('margin'))  { fancyMargin = $(this.element).data("margin") };
        if ($(window).width() <= 1154){ 
            this.width  = "100%";
            this.height  = "84%";
        } else {
            //alert("ipad");
            this.width  = fancyWidth;
            this.height  = fancyHeight;
            this.margin = fancyMargin
        };

    },
    helpers: {
        overlay: {
            locked: false,
            closeClick: false,
            css : {
                  'background' : 'rgba(241, 241, 241, 0.95)'
                 }
        }
    },
    afterClose: function() {
        if($(this.element).data("autoreload") == 'ja') {parent.location.reload(true);}
        if($(this.element).data("autoredirect") == 'ja') {location.href = "index.asp";}
        var redirectUrl = $(this.element).data("autourl");
        if (redirectUrl != undefined) {location.href = redirectUrl;}
    },
     afterShow: function () {
        $(".fancybox-wrap").draggable();
    }

});

Before typing

When starts typing it jumps down

1 个答案:

答案 0 :(得分:0)

这是由此WebKit错误引起的 - https://bugs.webkit.org/show_bug.cgi?id=176896 - 希望将在iOS 11.3中修复