Featherlight 灯箱目标始终可见
Featherlight Lightbox Target Always Visible
我正在使用 Featherlight.js 尝试获得灯箱效果。灯箱应在单击图像时打开,但灯箱的目标内容是视频而不是单击的图像。 (基本上,您单击一个占位符图像并弹出一个 youtube 视频。)但是,在单击任何内容之前,youtube 视频在我的页面上显示为在图像下方可见。除了在灯箱的上下文中,如何使视频不可见?
@media all {
.featherlight {
display: none;
/* dimensions: spanning the background from edge to edge */
position:fixed;
top: 0; right: 0; bottom: 0; left: 0;
z-index: 2147483647; /* z-index needs to be >= elements on the site. */
/* position: centering content */
text-align: center;
/* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
white-space: nowrap;
/* styling */
cursor: pointer;
background: #333;
/* IE8 "hack" for nested featherlights */
background: rgba(0, 0, 0, 0);
}
/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
background: rgba(0, 0, 0, 0.8);
}
.featherlight:before {
/* position: trick to center content vertically */
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em;
}
.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;
}
/* contains the content */
.featherlight .featherlight-inner {
/* make sure its visible */
display: block;
}
.featherlight .featherlight-close-icon {
/* position: centering vertical and horizontal */
position: absolute;
z-index: 9999;
top: 0;
right: 0;
/* dimensions: 25px x 25px */
line-height: 25px;
width: 25px;
/* styling */
cursor: pointer;
text-align: center;
font-family: Arial, sans-serif;
background: #fff; /* Set the background in case it overlaps the content */
background: rgba(255, 255, 255, 0.3);
color: #000;
}
.featherlight .featherlight-image {
/* styling */
width: 100%;
}
.featherlight-iframe .featherlight-content {
/* removed the border for image croping since iframe is edge to edge */
border-bottom: 0;
padding: 0;
}
.featherlight iframe {
/* styling */
border: none;
}
}
/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
.featherlight .featherlight-content {
/* dimensions: maximize lightbox with for small screens */
margin-left: 10px;
margin-right: 10px;
max-height: 98%;
padding: 10px 10px 0;
border-bottom: 10px solid transparent;
}
}
<a class="VideoLink" href="#" data-featherlight="#mylightbox">
<img class="PopoutClickImage" src="Images/Dyson Extracted/V Click Video.png"/>
</a>
<div id="mylightbox">
<iframe width="560" height="315" src="https://www.youtube.com/embed/IUnEEi4tM0U?list=PL4VODwvGuSpSPwDCceh4sL9qIX-WF3oiD&showinfo=0" frameborder="0" allowfullscreen></iframe>
</div>
featherlight 文档正在使用 class,其中在其灯箱目标上包含 display:none。所以制作一个 class .hide { display:none } 如果你还没有并将它添加到#mylightbox。
然后你还必须在featherlight.css中用display:block!important标记.featherlight-inner,否则内容仍然会被隐藏。不是最好的插件...
/* contains the content */
.featherlight .featherlight-inner {
/* make sure its visible */
display: block !important;
text-align: center;
}
运行 也进入这个问题,我找到的唯一解决方案如下:
#popup_code {
display:none;
}
.featherlight .featherlight-inner {
display: block !important;
}
popup_code 是您在灯箱中展示的内容的 ID。 display:none 属性将确保原始内容始终隐藏。
在 featherlight 的内部元素上设置 display:block 将确保它在打开后会显示灯箱中内容的副本。
这个解决方案并不理想,因为我必须 'important' 该属性。它虽然有效。
希望有人能提出更好的方法。
我正在使用 Featherlight.js 尝试获得灯箱效果。灯箱应在单击图像时打开,但灯箱的目标内容是视频而不是单击的图像。 (基本上,您单击一个占位符图像并弹出一个 youtube 视频。)但是,在单击任何内容之前,youtube 视频在我的页面上显示为在图像下方可见。除了在灯箱的上下文中,如何使视频不可见?
@media all {
.featherlight {
display: none;
/* dimensions: spanning the background from edge to edge */
position:fixed;
top: 0; right: 0; bottom: 0; left: 0;
z-index: 2147483647; /* z-index needs to be >= elements on the site. */
/* position: centering content */
text-align: center;
/* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
white-space: nowrap;
/* styling */
cursor: pointer;
background: #333;
/* IE8 "hack" for nested featherlights */
background: rgba(0, 0, 0, 0);
}
/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
background: rgba(0, 0, 0, 0.8);
}
.featherlight:before {
/* position: trick to center content vertically */
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em;
}
.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;
}
/* contains the content */
.featherlight .featherlight-inner {
/* make sure its visible */
display: block;
}
.featherlight .featherlight-close-icon {
/* position: centering vertical and horizontal */
position: absolute;
z-index: 9999;
top: 0;
right: 0;
/* dimensions: 25px x 25px */
line-height: 25px;
width: 25px;
/* styling */
cursor: pointer;
text-align: center;
font-family: Arial, sans-serif;
background: #fff; /* Set the background in case it overlaps the content */
background: rgba(255, 255, 255, 0.3);
color: #000;
}
.featherlight .featherlight-image {
/* styling */
width: 100%;
}
.featherlight-iframe .featherlight-content {
/* removed the border for image croping since iframe is edge to edge */
border-bottom: 0;
padding: 0;
}
.featherlight iframe {
/* styling */
border: none;
}
}
/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
.featherlight .featherlight-content {
/* dimensions: maximize lightbox with for small screens */
margin-left: 10px;
margin-right: 10px;
max-height: 98%;
padding: 10px 10px 0;
border-bottom: 10px solid transparent;
}
}
<a class="VideoLink" href="#" data-featherlight="#mylightbox">
<img class="PopoutClickImage" src="Images/Dyson Extracted/V Click Video.png"/>
</a>
<div id="mylightbox">
<iframe width="560" height="315" src="https://www.youtube.com/embed/IUnEEi4tM0U?list=PL4VODwvGuSpSPwDCceh4sL9qIX-WF3oiD&showinfo=0" frameborder="0" allowfullscreen></iframe>
</div>
featherlight 文档正在使用 class,其中在其灯箱目标上包含 display:none。所以制作一个 class .hide { display:none } 如果你还没有并将它添加到#mylightbox。
然后你还必须在featherlight.css中用display:block!important标记.featherlight-inner,否则内容仍然会被隐藏。不是最好的插件...
/* contains the content */
.featherlight .featherlight-inner {
/* make sure its visible */
display: block !important;
text-align: center;
}
运行 也进入这个问题,我找到的唯一解决方案如下:
#popup_code {
display:none;
}
.featherlight .featherlight-inner {
display: block !important;
}
popup_code 是您在灯箱中展示的内容的 ID。 display:none 属性将确保原始内容始终隐藏。 在 featherlight 的内部元素上设置 display:block 将确保它在打开后会显示灯箱中内容的副本。
这个解决方案并不理想,因为我必须 'important' 该属性。它虽然有效。 希望有人能提出更好的方法。