Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iPad、iPhone模式对话框滚动问题_Javascript_Jquery_Html_Ios - Fatal编程技术网

Javascript iPad、iPhone模式对话框滚动问题

Javascript iPad、iPhone模式对话框滚动问题,javascript,jquery,html,ios,Javascript,Jquery,Html,Ios,我们网站上的各种页面打开JQuery的“模态对话框” 这些在每个web浏览器中都可以正常工作 然而,在iPad或iPhone上观看时会出现问题,我相信这是一个常见问题 在某些页面上,模态对话框对于iPad屏幕来说太大了,因此我需要滚动模态对话框 但是,当我这样做时,对话框不会移动,但背景(即它后面的主屏幕)会滚动 我想在模式打开时禁用背景滚动,但启用模式对话框滚动 我尝试了“溢出:隐藏”下面的“位置:固定”,这为其他人解决了问题,不幸的是,对我来说,问题仍然存在 有没有人有我可以尝试的其他想法/

我们网站上的各种页面打开JQuery的“模态对话框”

这些在每个web浏览器中都可以正常工作

然而,在iPad或iPhone上观看时会出现问题,我相信这是一个常见问题

在某些页面上,模态对话框对于iPad屏幕来说太大了,因此我需要滚动模态对话框

但是,当我这样做时,对话框不会移动,但背景(即它后面的主屏幕)会滚动

我想在模式打开时禁用背景滚动,但启用模式对话框滚动

我尝试了“溢出:隐藏”下面的“位置:固定”,这为其他人解决了问题,不幸的是,对我来说,问题仍然存在

有没有人有我可以尝试的其他想法/事情

下面是在模式对话框中打开的其中一个页面的代码示例

谢谢

<script>
    function myOnLoad() {
        window.parent.$('body').css('overflow', 'hidden');

    }   

</script>



<body onload="myOnLoad()">
    <div class="wrapper">
    <div id="popup" class="modalDialog2"> 

 <!--DIALOG CONTENT HERE-->


</div>
</div>


<script type="text/javascript">
    // close Modal
    $("#close").click(function (e) {
    e.preventDefault();
    window.parent.$('body').css('overflow', 'auto');
    window.parent.$("iframe").attr('src');
    window.parent.$(".modalDialog").removeClass('show');
    });
</script>

函数myOnLoad(){
window.parent.$('body').css('overflow','hidden');
}   
//闭合模态
$(“#关闭”)。单击(功能(e){
e、 预防默认值();
window.parent.$('body').css('overflow','auto');
window.parent.$(“iframe”).attr('src');
window.parent.$(“.modalDialog”).removeClass('show');
});
解决方案


这段代码和相应的代码实现了这个技巧

$(function(){
    if (/iPhone|iPod|iPad/.test(navigator.userAgent))
        $('iframe').wrap(function(){
            var $this = $(this);
            return $('<div />').css({
                width: $this.attr('width'),
                height: $this.attr('height'),
                overflow: 'scroll',
                '-webkit-overflow-scrolling': 'touch'
            });
        });
})
$(函数(){
if(/iPhone | iPod | iPad/.test(navigator.userAgent))
$('iframe').wrap(函数(){
var$this=$(this);
返回$('').css({
宽度:$this.attr('width'),
高度:$this.attr('height'),
溢出:“滚动”,
“-webkit溢出滚动”:“触摸”
});
});
})

我遇到了这个问题,下面的代码行为我解决了这个问题-

html{ 
    overflow: scroll; 
    -webkit-overflow-scrolling: touch;
}

请在上添加工作代码段。别担心,我已经找到了问题的答案。然后你应该发布自己问题的答案或将其删除。这段代码和相应的链接起到了作用。。。对我来说,它的可能副本没有:溢出:滚动;但只需使用-webkit溢出滚动:触摸;