FancyBox 在 browser/screen 之外打开
FancyBox opens outside of browser/screen
我正在处理一个页面,其中有几组不同的图像,我想在用户单击缩略图时为他们打开这些图像,并在 FancyBox 中执行此操作。
我或多或少能正常工作,但有一个主要问题 - 所有图像(1680x1050,PNG)都在屏幕外的位置打开,就好像它们的顶部和左侧值是相对于屏幕本身设置的分别为 -80% 和 75%。
翻译:打开时我只能看到图像的左下角(最多)。
我用 Google、SO、GitHub(FB 项目的来源)等进行了大量搜索,但还没有找到解决方案,甚至没有人遇到同样的问题。
我可能遗漏了一些明显的东西,或者至少对经验丰富的老手来说是显而易见的,但我有点新,有点累。有人有什么想法吗?
根据 JFK 的建议,我将我认为是所有相关代码的内容放入 jsfiddle(我听说过,但以前从未见过,更不用说使用了)。可以在这里找到:
http://jsfiddle.net/ericb222/ttvpg8vp/4/
此外,我使用的 jQuery 是:
jquery 2.1.1
jQueryui 1.11.2
如果您需要更多代码,请随时告诉我。我是编程新手;我刚刚完成了专注于 Java 和 SQL 的两年制学位。
/* HTML */
<div id="content">
<div id="content_body">
<div id="content_left">
</div><!--Close of content_left-->
<div id="content_right">
<div id="oms" class="content_block_standard">
<div class="screenshots">
<a href="http://www.ejbdev.com/academia/oms/1_Portal.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/1_Portal.png" /></a>
<a href="http://www.ejbdev.com/academia/oms/2_Roster.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/2_Roster.png" /></a>
<a href="http://www.ejbdev.com/academia/oms/3_Add.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/3_Add.png" /></a>
</div><!-- /screenshots -->
</div><!-- /content_block_standard for OMS project -->
</div><!-- /#content_right -->
</div><!-- /#content_body -->
</div><!-- /#content -->
/* Javascript (from <head>) */
$(document).ready(function() {
$('.fancybox').fancybox({
openEffect : 'elastic'
});
});
/* CSS */
div#content {
/* Positioning */
margin-left: auto;
margin-right: auto;
position: relative;
top: 4.0em;
margin-bottom: 16px;
/* Sizing */
width: 960px;
/* Styling */
border-top: none;
}
div#content_body {
margin: 0;
padding: 0;
display: table;
position: relative;
top: 0px;
left: 0px;
height: 100%;
}
div#content_left {
width: 192px;
height: 100%;
margin-top: 0;
display: table-cell;
vertical-align: top;
position: relative;
top: 0px;
left: 0px;
padding-left: 0.4em;
padding-right: 0.4em;
}
div#content_right {
width: 768px;
display: table-cell;
vertical-align: top;
border-radius: 8px;
}
div.content_block_standard {
width: 90%;
margin-left: auto;
margin-right: auto;
padding: 1.0em;
}
div.screenshots {
text-align: center;
margin-left: auto;
margin-right: auto;
background: linear-gradient(rgba(0,0,0,0.0),rgba(0,0,0,0.0),rgba(22,122,222,0.2));
padding: 4px;
}
img.thumbnail {
width: 128px;
height: auto;
}
据我所知,当元素相对于屏幕定位 75% 时,这是预期的行为。只有在剩下的 25% 的屏幕上,该元素才会可见,其余部分将在视口之外。
试试这个:(对于这个例子,我使用 800px 的元素宽度和高度)
left: 50%; // position the left side of the box to be in the exact center
top: 50% // position the top of the box to be in the exact center
margin-left: -400px; // half of the width
margin-top:-400px; // half of the height
由于您没有向我们提供任何代码,我不确定上面的解决方案是否适合您,但这就是将绝对定位元素居中到父元素的程度。
杰伦干杯。
原来,我 遗漏了一些明显的东西,我 没有 包括所有相关代码供任何人帮助我(新手错误), 并且没有注意到 Chrome 的元素检查器中的那个红色小 X。
我把 FancyBox 样式表的路径弄错了。就是这样。
我正在处理一个页面,其中有几组不同的图像,我想在用户单击缩略图时为他们打开这些图像,并在 FancyBox 中执行此操作。
我或多或少能正常工作,但有一个主要问题 - 所有图像(1680x1050,PNG)都在屏幕外的位置打开,就好像它们的顶部和左侧值是相对于屏幕本身设置的分别为 -80% 和 75%。
翻译:打开时我只能看到图像的左下角(最多)。
我用 Google、SO、GitHub(FB 项目的来源)等进行了大量搜索,但还没有找到解决方案,甚至没有人遇到同样的问题。
我可能遗漏了一些明显的东西,或者至少对经验丰富的老手来说是显而易见的,但我有点新,有点累。有人有什么想法吗?
根据 JFK 的建议,我将我认为是所有相关代码的内容放入 jsfiddle(我听说过,但以前从未见过,更不用说使用了)。可以在这里找到:
http://jsfiddle.net/ericb222/ttvpg8vp/4/
此外,我使用的 jQuery 是:
jquery 2.1.1
jQueryui 1.11.2
如果您需要更多代码,请随时告诉我。我是编程新手;我刚刚完成了专注于 Java 和 SQL 的两年制学位。
/* HTML */
<div id="content">
<div id="content_body">
<div id="content_left">
</div><!--Close of content_left-->
<div id="content_right">
<div id="oms" class="content_block_standard">
<div class="screenshots">
<a href="http://www.ejbdev.com/academia/oms/1_Portal.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/1_Portal.png" /></a>
<a href="http://www.ejbdev.com/academia/oms/2_Roster.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/2_Roster.png" /></a>
<a href="http://www.ejbdev.com/academia/oms/3_Add.png" class="fancybox fancybox.image" rel="oms_gallery" title="Text"><img class="thumbnail" src="http://www.ejbdev.com/academia/oms/3_Add.png" /></a>
</div><!-- /screenshots -->
</div><!-- /content_block_standard for OMS project -->
</div><!-- /#content_right -->
</div><!-- /#content_body -->
</div><!-- /#content -->
/* Javascript (from <head>) */
$(document).ready(function() {
$('.fancybox').fancybox({
openEffect : 'elastic'
});
});
/* CSS */
div#content {
/* Positioning */
margin-left: auto;
margin-right: auto;
position: relative;
top: 4.0em;
margin-bottom: 16px;
/* Sizing */
width: 960px;
/* Styling */
border-top: none;
}
div#content_body {
margin: 0;
padding: 0;
display: table;
position: relative;
top: 0px;
left: 0px;
height: 100%;
}
div#content_left {
width: 192px;
height: 100%;
margin-top: 0;
display: table-cell;
vertical-align: top;
position: relative;
top: 0px;
left: 0px;
padding-left: 0.4em;
padding-right: 0.4em;
}
div#content_right {
width: 768px;
display: table-cell;
vertical-align: top;
border-radius: 8px;
}
div.content_block_standard {
width: 90%;
margin-left: auto;
margin-right: auto;
padding: 1.0em;
}
div.screenshots {
text-align: center;
margin-left: auto;
margin-right: auto;
background: linear-gradient(rgba(0,0,0,0.0),rgba(0,0,0,0.0),rgba(22,122,222,0.2));
padding: 4px;
}
img.thumbnail {
width: 128px;
height: auto;
}
据我所知,当元素相对于屏幕定位 75% 时,这是预期的行为。只有在剩下的 25% 的屏幕上,该元素才会可见,其余部分将在视口之外。
试试这个:(对于这个例子,我使用 800px 的元素宽度和高度)
left: 50%; // position the left side of the box to be in the exact center
top: 50% // position the top of the box to be in the exact center
margin-left: -400px; // half of the width
margin-top:-400px; // half of the height
由于您没有向我们提供任何代码,我不确定上面的解决方案是否适合您,但这就是将绝对定位元素居中到父元素的程度。
杰伦干杯。
原来,我 遗漏了一些明显的东西,我 没有 包括所有相关代码供任何人帮助我(新手错误), 并且没有注意到 Chrome 的元素检查器中的那个红色小 X。
我把 FancyBox 样式表的路径弄错了。就是这样。