Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Jquery plugins jQuery Colorbox,iframe内容在iPad中不滚动_Jquery Plugins_Lightbox_Colorbox - Fatal编程技术网

Jquery plugins jQuery Colorbox,iframe内容在iPad中不滚动

Jquery plugins jQuery Colorbox,iframe内容在iPad中不滚动,jquery-plugins,lightbox,colorbox,Jquery Plugins,Lightbox,Colorbox,在iPad上查看时,颜色框iframe内容不会滚动,请阅读以下内容: 当显示的网页尺寸大于Ipad中为颜色盒设置的尺寸时,滚动功能将被禁用和/或不存在 有些人可能建议用一个手指或两个手指滚动,但这不起作用 预需求: 拥有一台Ipad,或者去当地的百思买 复制步骤: 去 单击外部网页(Iframe)链接, 在谷歌搜索中输入一些东西 结果: 您无法滚动浏览结果 有解决办法吗?是否正在着手解决此问题? 顺便说一句,这在IE、Chrome和Firefox上运行良好 有人为此找工作吗???任何帮助都将不

在iPad上查看时,颜色框iframe内容不会滚动,请阅读以下内容:

当显示的网页尺寸大于Ipad中为颜色盒设置的尺寸时,滚动功能将被禁用和/或不存在

有些人可能建议用一个手指或两个手指滚动,但这不起作用

预需求: 拥有一台Ipad,或者去当地的百思买

复制步骤: 去 单击外部网页(Iframe)链接, 在谷歌搜索中输入一些东西

结果: 您无法滚动浏览结果

有解决办法吗?是否正在着手解决此问题? 顺便说一句,这在IE、Chrome和Firefox上运行良好


有人为此找工作吗???任何帮助都将不胜感激。

您是否可以控制自己的iframe内容,或者是来自外部网站(即位于不同域)的内容?如果是后者,我也无能为力

如果您控制iframe内容,则可以使用解决问题

iframe的主体应该有CSS-overflow:auto,并且需要在iframe内容周围加上一个div。在iframe内部就绪时,获取iframe窗口的高度,将wrapper div的css高度设置为窗口的高度(或稍低一点),然后将jScrollPane应用于wrapper div

$(document).ready(function() {
    var $container = $("#myDiv");
    var $win = $(window);

    if ($container.height() >= $win.height()){
        $container.css({
            'width': $win.width(),
            'height': $win.height()
        });

        $container.jScrollPane();
    }
});
更新-作者修复问题 显然,杰克今天(2013年2月4日)就有这个问题。值得从他的页面获取最新版本


先前的解决方案 好的,我无法让jScrollPane正常工作。这并不是说你不会这么做,但我也在使用自定义调整大小来调整iframe的大小,我认为它与jScrollPane的维度计算不太协调

解决方案 不过,我还是设法让它正常工作了,这要归功于解决了iOS iframe滚动的更一般问题,这要归功于。我对她的代码做了一些调整,以更好地使用colorbox。请注意,这仅适用于控制iframe内容的情况

只需将以下代码放入iframe中:

setTimeout(function () {
    var startY = 0;
    var startX = 0;
    var b = document.body;
    b.addEventListener('touchstart', function (event) {
        startY = event.targetTouches[0].screenY;
        startX = event.targetTouches[0].screenX;
    });
    b.addEventListener('touchmove', function (event) {
        event.preventDefault();
        var posy = event.targetTouches[0].screenY;
        var h = parent.document.getElementById("cboxLoadedContent");
        var sty = h.scrollTop;

        var posx = event.targetTouches[0].screenX;
        var stx = h.scrollLeft;
        h.scrollTop = sty - (posy - startY);
        h.scrollLeft = stx - (posx - startX);
        startY = posy;
        startX = posx;
    });
}, 1000);
滚动并不紧张,虽然您没有本地滚动的逐渐减速,但当您抬起手指时,滚动就会停止。另外,没有滚动条。除此之外,这是一个完美的解决方案


对于不控制iframe的场景,提供了另一种尝试。

我刚刚完成了这项工作,在我的常规css中添加了
#cboxLoadedContent{-webkit overflow scrolling:touch;}

然后,在colorbox打开的视图中,我向css添加了以下样式
body{-webkit transform:translate3d(0,0,0);}


这在iPad和iPhone上都可以使用。

您在这方面遇到过任何问题吗?我目前正在用iframed colorbox进行尝试,它可以工作,但在我滚动的较长页面上,整个colorbox会跳到一边。如果我继续移动,它会自动重置,卷轴会跳回顶部。我没有遇到这个问题,因为我的页面不是特别长。我只是尝试了一下,发现它第一次起作用,但之后它打破了颜色框。不确定你是否有相同的结果。我检测到一个bug,它总是有效的,但是,如果你从颜色框中触摸并在网页上滚动(而不是进入去颜色框),关闭按钮就会失败。