我该怎么做呢?我的出现在右下角。我使用的是Lightbox v2.7.1版本。
针对v2.8.1版本的替换代码。 这将把关闭按钮和标题都移动到顶部。
Lightbox.prototype.build = function() {
var self = this;
$('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div></div>').appendTo($('body'));
您需要将数据容器移动到外部容器之上。请使用以下代码替换lightbox.js文件第59行开始的代码:
Lightbox.prototype.build = function() {
var self = this;
$("<div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-caption'></span><span class='lb-number'></span></div><div class='lb-closeContainer'><a class='lb-close'></a></div></div></div></div><div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><div class='lb-nav'><a class='lb-prev' href='' ></a><a class='lb-next' href='' ></a></div><div class='lb-loader'><a class='lb-cancel'></a></div></div></div>").appendTo($('body'));
Lightbox.prototype.build = function() {
var self = this;
$("<div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-caption'></span><span class='lb-number'></span></div><div class='lb-closeContainer'><a class='lb-close'></a></div></div></div><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><div class='lb-nav'><a class='lb-prev' href='' ></a><a class='lb-next' href='' ></a></div><div class='lb-loader'><a class='lb-cancel'></a></div></div></div></div>").appendTo($('body'));
最简单和最好的方法是只使用一些CSS规则,而不改变原始库(这是维护问题的最佳选择),可能看起来像这样:
我们可以利用flexbox吗? 是的,让我们开始吧!
(注意:这是SCSS代码)
#lightbox {
display: flex;
flex-direction: column;
.lb-dataContainer {
order: 0;
margin-bottom: 10px;
//Want to hide the text? no problem
.lb-details {
opacity: 0;
}
// Want to change the icon? no problem too.
.lb-close {
background: url(../images/ico/close.png);
background-size: contain;
background-repeat: no-repeat;
background-position: right;
}
}
.lb-outerContainer{
order: 1;
}
}
根据APAD1和user1999659的答案,我做了以下修改,使关闭按钮位于右上角,但标题仍在图像下方。
这是适用于v2.7.1的工作代码。请使用以下代码替换lightbox.js文件第59行开始的代码:
Lightbox.prototype.build = function() {
var self = this;
$("<div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-number'></span></div><div class='lb-closeContainer'><a class='lb-close'></a></div></div></div><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><div class='lb-nav'><a class='lb-prev' href='' ></a><a class='lb-next' href='' ></a></div><div class='lb-loader'><a class='lb-cancel'></a></div></div></div><div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-caption'></span></div></div></div></div>").appendTo($('body'));
$('.lb-data .lb-details').css('width', '100%');
我像这样编辑了代码(将关闭块移动到其他 Div 中):
Lightbox.prototype.build = function() {
var self = this;
$('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-closeContainer"><a class="lb-close"></a></div><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div></div></div></div>').appendTo($('body'));
并添加了以下 CSS
.lb-closeContainer {
position: absolute;
top: -2px;
right: -28px;
}
这个 CSS 有一些修改
.lb-closeContainer .lb-close {
display: block;
float: right;
width: 24px;
height: 24px;
background: url(../images/close.png) top right no-repeat;
background-size: contain;
text-align: right;
outline: none;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
opacity: 0.7;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.lb-closeContainer .lb-close:hover {
cursor: pointer;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
#lightbox {
display: flex;
flex-direction: column;
}
#lightbox .lb-dataContainer {
order: 0;
margin-bottom: 10px;
}
#lightbox .lb-dataContainer .lb-details {
opacity: 0;
}
#lightbox .lb-dataContainer .lb-close {
background-size: contain;
background-repeat: no-repeat;
background-position: right;
}
#lightbox .lb-outerContainer{
order: 1;
}