如何在slimbox(jQuery)中将关闭按钮移动到框的右上角

时间:2010-04-03 09:41:03

标签: jquery plugins

我想让我的按钮在右上角,我尝试了位置:绝对,但我认为盒子的位置不是相对的所以我不能使用top:0;。

有什么建议吗?

CSS:

/* SLIMBOX */

#lbOverlay {
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    cursor: pointer;
}

#lbCenter, #lbBottomContainer {
    position: absolute;
    z-index: 9999;
    overflow: hidden;
    background-color: #fff;
}

.lbLoading {
    background: #fff url(slimbox2/loading.gif) no-repeat center;
}

#lbImage {
    position: absolute;
    left: 0;
    top: 0;
    border: 10px solid #fff;
    background-repeat: no-repeat;
}

#lbPrevLink, #lbNextLink {
    display: block;
    position: absolute;
    top: 0;
    width: 50%;
    outline: none;
}

#lbPrevLink {
    left: 0;
}

#lbPrevLink:hover {
    background: transparent url(slimbox2/prevlabel.gif) no-repeat 0 15%;
}

#lbNextLink {
    right: 0;
}

#lbNextLink:hover {
    background: transparent url(slimbox2/nextlabel.gif) no-repeat 100% 15%;
}

#lbBottom {
    font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
    font-size: 10px;
    color: #666;
    line-height: 1.4em;
    text-align: left;
    border: 10px solid #fff;
    border-top-style: none;
}

#lbCloseLink {
    display: block;
    float: right;
    width: 31px;
    height: 32px;
    background: transparent url(slimbox2/closelabel.gif) no-repeat center;
    margin: 5px 0;
    outline: none;
}
#lbCloseLink:hover {
    background: transparent url(slimbox2/closelabel_hover.gif) no-repeat center;
    border-bottom: 0px;
}

#lbCaption, #lbNumber {
    margin-right: 71px;
}

#lbCaption {
    font-weight: bold;
}

3 个答案:

答案 0 :(得分:1)

按钮#lbCloseLink位于#lbBottomContainer内,绝对定位。

您可以在按钮上尝试margin-top: -Npx,但要实现此目的,您必须知道内容的高度并移除overflow: hidden上的#lbBottomContainer。 另一个解决方案可能是修补Slimbox并将按钮放入#lbCenter

答案 1 :(得分:0)

我编辑了slimbox.js(首先使用:http://jsbeautifier.org/扩展脚本)和slimbox.css`

1)编辑slimbox.js

I.setStyles({
                width: N,
                top: O, /* modified for TOP POSITION; original was O+t */
                marginLeft: -N / 2,
                visibility: "hidden",
                display: ""
            });


b.setStyles({
            overflow:"visible", /* new line inserted for visibility TOP POSITION */
                top: Math.max(0, z - (t / 2)),
                width: N,
                height: t,
                marginLeft: -N / 2,
                display: ""
            });

2)编辑slimbox.css

#lbBottom {
    font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
    font-size: 10px;
    color: #666;
    line-height: 1.4em;
    text-align: left;
    border-right: 10px solid #fff; /* modified: line inserted for TOP POSITION */
    border-left: 10px solid #fff;  /* modified: line inserted for TOP POSITION */
}

#lbCloseLink {
    display: block;
    float: right;
    width: 66px;
    height: 22px;
    background: transparent url(closelabel.gif) no-repeat center;
    margin:0 0 0 0; /* modified for TOP POSITION */
    outline: none;
}

#lbCaption, #lbNumber {
    margin-right: 71px;
    margin-top:7px; /* line inserted for TOP POSITION */
}

答案 2 :(得分:0)

根据2.05版 你需要将lbClos​​eLink插入lbCenter div;这可以通过削减

来解决
w('<a id="lbCloseLink" href="#" />').click(C)[0],

并将其附加到具有相对位置的未命名div

g=w('<div id="lbImage" rel=""/>').appendTo(a).append(p=w('<div style="position: relative;" />').append([w('<a id="lbCloseLink" href="#" />').click(C)[0],I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(e)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]; 

之后,你需要自定义slimbox2.css,使lbClos​​elink位置绝对,z-index高于1,你也可以删除float:right;因为它有绝对位置,所以浮动无效

#lbCloseLink {
position: absolute;
right:0px;
z-index: 2;
display: block;
width: %yourwidth%;
height: %yourheight%;
background: transparent url(closelabel.gif) no-repeat center;
outline: none;}