【问题标题】:Showing a youtube video with fancyBox, scroll is enabled in chrome only显示带有 fancyBox 的 youtube 视频,滚动仅在 chrome 中启用
【发布时间】:2013-08-21 08:19:14
【问题描述】:

我正在使用 2.1.5 版的 fancyBox 插件在弹出窗口中显示 Youtube 视频 - 类似于 jQuery 灯箱插件的功能,仅适用于视频媒体。

这在 IE、Firefox 和 Opera 中完美运行,但是在针对 Chrome 进行测试时,视频可以很好地加载到叠加层中,但是它允许您在页面上下滚动 iframe,叠加层似乎也没有覆盖页面的整个高度。下面附上一张截图来演示:

如您所见,overlay 不会覆盖整个页面,并且 iframe 允许垂直滚动。这在其他浏览器中不是问题,并且似乎只是 chrome 的问题。有人遇到过这种情况吗?

我的JS+包含如下:

<script type="text/javascript" src="/Js/jquery.fancybox.js"></script>
<script type="text/javascript" src="/Js/jquery.fancybox-media.js"></script>
<link href="/Css/fancy.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
    $(document).ready(function () {
        $('.fancybox-media').fancybox({
            openEffect: 'none',
            closeEffect: 'none',
            helpers: {
              media: {}
            }
        });
    });
</script>

还有标记:

<a class="fancybox-media" href="http://youtu.be/Ut7Hrc26TAI">
    <img src="/Images/laptop-find-out-more.png" alt="Find out more" />
</a>

我正在使用 jQuery 版本 1.8.2 分钟。我已经用较新版本的 jQuery 对此进行了测试,但无济于事。

如何防止这种滚动行为并确保覆盖在 chrome 中覆盖整个页面?

【问题讨论】:

  • 它对我来说很好用。只需查看以下小提琴:jsfiddle.net/cvsca/1.
  • 你有鼠标滚轮吗?
  • 当然!!但是官方页面中的示例具有相同的功能(背景是可滚动的,黑色覆盖是“剪切”的)。所以这是一个插件问题,而不是你的问题。在这里查看:fancyapps.com/fancybox/#examples - 媒体助手选项卡下的 YouTube 链接。
  • 是的,好像是这样。嗯,看来我现在坚持我的解决方法:)
  • 是的。顺便说一句,在开始使用它之前,请尝试始终检查插件的“官方”示例。

标签: jquery css iframe youtube fancybox


【解决方案1】:

最终不得不挂钩 afterShownafterClose 回调并手动禁用滚动,因为似乎没有官方修复此问题。

<script type="text/javascript">
    $(document).ready(function () {
        $('.fancybox-media').fancybox({
            openEffect: 'none',
            closeEffect: 'none',
            afterShow: shown,
            afterClose: closed,
            helpers: {
                media: {}
            }
        });
    });

    function shown() {
        $('html, body').css({
            'overflow': 'hidden',
            'height': '100%'
        });
    }

    function closed() {
        $('html, body').css({
            'overflow': 'auto',
            'height': 'auto'
        });
    }
</script>

希望这可以帮助处于相同情况的其他人。

【讨论】:

  • 您可能想要获取溢出和高度的当前设置,并在设置溢出和高度之前将它们分配给一个变量...这样您可以在之后重新分配它并且页面将运行和以前一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2014-07-02
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多