Featherlight.js - 大图像仍在滚动

Mic*_*Kay 5 jquery modal-dialog lightbox featherlight.js

我正在使用featherlight.js的1.3.3版本,而且我仍然在大图像上进行垂直滚动.无论出于何种原因,事情都没有很好地调整大小.

要重现,只需在其中抛出一个非常大的图像链接并运行featherlight - 垂直滚动.适用于Mac的最新版Chrome,Safari和Firefox.

我注意到使用WP Featherlight插件时不会发生这种情况,但是看起来这个插件使用的是版本1.2.3的修改版本,其中CSS(可能还有JS)与Github上的内容不匹配...

例如,这就是插件CSS中的内容:

.featherlight .featherlight-content {
background: #fff;
border: 0;
cursor: auto;
display: inline-block;
max-height: 95%;
max-width: 90%;
min-width: inherit;
overflow: auto;
padding: 0;
position: relative;
text-align: left;
vertical-align: middle;
white-space: normal;
Run Code Online (Sandbox Code Playgroud)

}

这就是Github回购中的内容:

.featherlight .featherlight-content {
    /* make content container for positioned elements (close button) */
    position: relative;

    /* position: centering vertical and horizontal */
    text-align: left;
    vertical-align: middle;
    display: inline-block;

    /* dimensions: cut off images */
    overflow: auto;
    padding: 25px 25px 0;
    border-bottom: 25px solid transparent;

    /* dimensions: handling small or empty content */
    min-width:  30%;

    /* dimensions: handling large content */
    margin-left: 5%;
    margin-right: 5%;
    max-height: 95%;

    /* styling */
    background: #fff;
    cursor: auto;

    /* reset white-space wrapping */
    white-space: normal;
}
Run Code Online (Sandbox Code Playgroud)

除此之外,repo代码添加了一个透明的边框底部,可能会让事情变得有点时髦...

无论如何,我已经看到各种线程提出垂直滚动的问题 - 你有一个有效的解决方案吗?版本1.3.3似乎仍然有这个问题,我不确定我是否只是遗漏了一些东西.

更新1(2015年8月25日)

好的,我们走了.实际上看起来有两个问题,都可能与box-sizing所有诚实相关但不完全确定...

问题1:Lightbox填充整个垂直空间,没有填充

演示:jsfiddle.net/aoejbz8s/10/

如果您查看小提琴,或尝试在WP的任何基础20__主题上使用featherlight,您将看到此问题.当box-sizing: border-box没有明确地为.featherlight容器及其内容设置时,似乎会发生这种情况.您的演示页面(http://noelboss.github.io/featherlight/)上不会出现此问题,因为您包含了引导程序,其中包括以下CSS:

*, *:before, *:after { box-sizing: border-box; }

然而,并非所有主题都包括这一点,并且似乎通过CSS明确地添加这个是一个好主意.

也就是说,当我刚刚设置应用上面的CSS而没有别的东西时,其他东西变得不可思议...

问题2:大图像会导致滚动

演示:jsfiddle.net/aoejbz8s/9/

因此,当我包含bootstrap CSS时,灯箱现在看起来是正确的大小(使用垂直填充),但是大图像会导致整个内容区域滚动.无论出于何种原因,这不会发生在您的演示页面上,而是在小提琴中.

此外,如果我在您的演示页面上触发灯箱,并使用相同的JS/CSS启动我自己的站点并触发相同图像的灯箱,两者都具有完全相同的视口大小,则图像的调整大小会有所不同!

以下是此问题的截屏视频:http://g.recordit.co/k9B5B0IInH.gif(过早切断,但仍然会解决问题)

所以我认为那里必定有一些CSS风格导致了这个问题,但对于我的生活,我似乎无法找到它的本质.我想知道你的演示页面中是否有一个影响这个问题的额外CSS规则,或者我测试过的所有其他主题都有CSS破坏了东西.

其他想法/问题

  • 为了最容易测试这个问题,我认为只需启动一个空白的Twentytwelve WordPress安装并尝试这一点可能会有所帮助.
  • 这可能是width()/height() vs 'outerWidth()/outerHeight()在JS 中使用的问题
  • WP Featherlight插件CSS/JS与Github repo上托管的完全不同,是否有理由这样做,如果是这样,这些差异是否反映了针对此问题的WP特定解决方案?

更新2(2015年8月25日 - 稍后)

因此,在深入研究WP Featherlight插件之后,我发现了一些似乎基本上完全解决了这个问题的样式 - 不知道为什么它们不包含在默认的CSS中.他们是:

.featherlight .featherlight-content { border: 0; padding: 0; }

.featherlight .featherlight-image { border: 20px solid #fff; max-width: 100%; }

@media only screen and (max-width: 1024px) { .featherlight .featherlight-image { border: 10px solid #fff; } }

知道为什么这些不包含在默认的CSS中吗?还有什么我想念的吗?感觉这太明显了,不能正确修复:)

小智 1

我发现这解决了我的问题:

  .featherlight .featherlight-image {
    height: 60vh !important;
    width: auto !important;
  }
Run Code Online (Sandbox Code Playgroud)