【问题标题】:jquery fancybox background with an image带有图像的jquery fancybox背景
【发布时间】:2012-07-04 08:48:27
【问题描述】:

我想在名为 fancybox 的 jQuery 插件上应用一个像素为 1x1 白色、透明度为 0.9 的图像背景。

我已经在 photoshop 中创建了像素,当我插入花哨的背景时没有出现,背景是空的,在萤火虫上没有错误,比如找不到图像或类似的东西。这是fancybox的css代码: (我更改的部分在#fancybox-outer 和#fancybox-content 中)我已经尝试过 background 和 background-image 什么都没有,帮帮我

  /*
     * FancyBox - jQuery Plugin
     * Simple and fancy lightbox alternative
     *
     * Examples and documentation at: http://fancybox.net
     * 
     * Copyright (c) 2008 - 2010 Janis Skarnelis
     * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
     * 
     * Version: 1.3.4 (11/11/2010)
     * Requires: jQuery v1.3+
     *
     * Dual licensed under the MIT and GPL licenses:
     *   http://www.opensource.org/licenses/mit-license.php
     *   http://www.gnu.org/licenses/gpl.html
     */

    #fancybox-loading {
        position: fixed;
        top: 50%;
        left: 50%;
        width: 40px;
        height: 40px;
        margin-top: -20px;
        margin-left: -20px;
        cursor: pointer;
        overflow: hidden;
        z-index: 1104;
        display: none;
    }

    #fancybox-loading div {
        position: absolute;
        top: 0;
        left: 0;
        width: 40px;
        height: 480px;
        background-image: url('fancybox.png');
    }

    #fancybox-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 1100;
        display: none;
    }

    #fancybox-tmp {
        padding: 0;
        margin: 0;
        border: 0;
        overflow: auto;
        display: none;
    }

    #fancybox-wrap {
        position: absolute;
        top: 0;
        left: 0;
        padding: 20px;
        z-index: 1101;
        outline: none;
        display: none;
    }

    #fancybox-outer {
        position: relative;
        width: 100%;
        height: 100%;
        background: url(sfondo_fancy.png) repeat-x repeat-y;
    }

    #fancybox-content {
        width: 0;
        height: 0;
        padding: 0;
        outline: none;
        position: relative;
        overflow: hidden;
        z-index: 1102;
        background: url(sfondo_fancy.png) repeat-x repeat-y;
    }

    #fancybox-hide-sel-frame {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: transparent;
        z-index: 1101;
    }

    #fancybox-close {
        position: absolute;
        top: -15px;
        right: -15px;
        width: 30px;
        height: 30px;
        background: transparent url('fancybox.png') -40px 0px;
        cursor: pointer;
        z-index: 1103;
        display: none;
    }

    #fancybox-error {
        color: #444;
        font: normal 12px/20px Arial;
        padding: 14px;
        margin: 0;
    }

    #fancybox-img {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
        border: none;
        outline: none;
        line-height: 0;
        vertical-align: top;
    }

    #fancybox-frame {
        width: 100%;
        height: 100%;
        border: none;
        display: block;
    }

    #fancybox-left, #fancybox-right {
        position: absolute;
        bottom: 0px;
        height: 100%;
        width: 35%;
        cursor: pointer;
        outline: none;
        background: transparent url('blank.gif');
        z-index: 1102;
        display: none;
    }

    #fancybox-left {
        left: 0px;
    }

    #fancybox-right {
        right: 0px;
    }

    #fancybox-left-ico, #fancybox-right-ico {
        position: absolute;
        top: 50%;
        left: -9999px;
        width: 30px;
        height: 30px;
        margin-top: -15px;
        cursor: pointer;
        z-index: 1102;
        display: block;
    }

    #fancybox-left-ico {
        background-image: url('fancybox.png');
        background-position: -40px -30px;
    }

    #fancybox-right-ico {
        background-image: url('fancybox.png');
        background-position: -40px -60px;
    }

    #fancybox-left:hover, #fancybox-right:hover {
        visibility: visible; /* IE6 */
    }

    #fancybox-left:hover span {
        left: 20px;
    }

    #fancybox-right:hover span {
        left: auto;
        right: 20px;
    }

    .fancybox-bg {
        position: absolute;
        padding: 0;
        margin: 0;
        border: 0;
        width: 20px;
        height: 20px;
        z-index: 1001;
    }

    #fancybox-bg-n {
        top: -20px;
        left: 0;
        width: 100%;
        background-image: url('fancybox-x.png');
    }

    #fancybox-bg-ne {
        top: -20px;
        right: -20px;
        background-image: url('fancybox.png');
        background-position: -40px -162px;
    }

    #fancybox-bg-e {
        top: 0;
        right: -20px;
        height: 100%;
        background-image: url('fancybox-y.png');
        background-position: -20px 0px;
    }

    #fancybox-bg-se {
        bottom: -20px;
        right: -20px;
        background-image: url('fancybox.png');
        background-position: -40px -182px; 
    }

    #fancybox-bg-s {
        bottom: -20px;
        left: 0;
        width: 100%;
        background-image: url('fancybox-x.png');
        background-position: 0px -20px;
    }

    #fancybox-bg-sw {
        bottom: -20px;
        left: -20px;
        background-image: url('fancybox.png');
        background-position: -40px -142px;
    }

    #fancybox-bg-w {
        top: 0;
        left: -20px;
        height: 100%;
        background-image: url('fancybox-y.png');
    }

    #fancybox-bg-nw {
        top: -20px;
        left: -20px;
        background-image: url('fancybox.png');
        background-position: -40px -122px;
    }

    #fancybox-title {
        font-family: Helvetica;
        font-size: 12px;
        z-index: 1102;
    }

    .fancybox-title-inside {
        padding-bottom: 10px;
        text-align: center;
        color: #333;
        background: #fff;
        position: relative;
    }

    .fancybox-title-outside {
        padding-top: 10px;
        color: #fff;
    }

    .fancybox-title-over {
        position: absolute;
        bottom: 0;
        left: 0;
        color: #FFF;
        text-align: left;
    }

    #fancybox-title-over {
        padding: 10px;
        background-image: url('fancy_title_over.png');
        display: block;
    }

    .fancybox-title-float {
        position: absolute;
        left: 0;
        bottom: -20px;
        height: 32px;
    }

    #fancybox-title-float-wrap {
        border: none;
        border-collapse: collapse;
        width: auto;
    }

    #fancybox-title-float-wrap td {
        border: none;
        white-space: nowrap;
    }

    #fancybox-title-float-left {
        padding: 0 0 0 15px;
        background: url('fancybox.png') -40px -90px no-repeat;
    }

    #fancybox-title-float-main {
        color: #FFF;
        line-height: 29px;
        font-weight: bold;
        padding: 0 0 3px 0;
        background: url('fancybox-x.png') 0px -40px;
    }

    #fancybox-title-float-right {
        padding: 0 0 0 15px;
        background: url('fancybox.png') -55px -90px no-repeat;
    }

    /* IE6 */

    .fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }

    .fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
    .fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }

    .fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
    .fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
    .fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
    .fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }

    .fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame {
        height: expression(this.parentNode.clientHeight + "px");
    }

    #fancybox-loading.fancybox-ie6 {
        position: absolute; margin-top: 0;
        top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px');
    }

    #fancybox-loading.fancybox-ie6 div  { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }

    /* IE6, IE7, IE8 */

    .fancybox-ie .fancybox-bg { background: transparent !important; }

    .fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
    .fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }

【问题讨论】:

  • 希望你需要调整你的插件代码
  • 为此添加一些 html。并尝试删除 repeat-x repeat-y 如果您想在两个方向上重复此图像,则不需要此操作。
  • 您是否使用此图像sfondo_fancy.png 作为背景?如果是,那么图像sfondo_fancy.png 和css Fancybox CSS 都放在哪个文件夹中?
  • 在同一个目录但不是文件夹问题,因为我浏览了图像并创建了图像
  • 用于叠加?如果是你可以试试:$(".fancybox").fancybox({ ... helpers: {overlay : { opacity : 0.9, css : {'background-color' : '#000'}} ...

标签: jquery css jquery-plugins fancybox


【解决方案1】:

解决方案是在我修改了内容和外部的css中,背景透明,没有阴影,如下所示:

/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 * 
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
 * 
 * Version: 1.3.4 (11/11/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

#fancybox-loading {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin-top: -20px;
    margin-left: -20px;
    cursor: pointer;
    overflow: hidden;
    z-index: 1104;
    display: none;
}

#fancybox-loading div {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 480px;
    background-image: url('fancybox.png');
}

#fancybox-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1100;
    display: none;
}

#fancybox-tmp {
    padding: 0;
    margin: 0;
    border: 0;
    overflow: auto;
    display: none;
}

#fancybox-wrap {
    position: absolute;
    top: 0;
    left: 0;
    padding: 20px;
    z-index: 1101;
    outline: none;
    display: none;
    background: url('sfondo_fancy.png') repeat;


}

#fancybox-outer {
    position: relative;
    width: 100%;
    height: 100%;
    /*background: url('sfondo_fancy.png') repeat;*/
    /*background:#fff;
    opacity:0.9;
    /*background: url('sfondo_fancy.png');*/
    background:transparent;
}

#fancybox-content {
    width: 0;
    height: 0;
    padding: 0;
    outline: none;
    position: relative;
    overflow: hidden;
    z-index: 1102;
    /*background: url('sfondo_fancy.png') repeat;*/
    /*background:#fff;
    opacity:0.9;
    /*background:url(sfondo_fancy.png) !important;*/
    background:transparent;
}

#fancybox-hide-sel-frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    z-index: 1101;
}

#fancybox-close {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 30px;
    height: 30px;
    background: transparent url('fancybox.png') -40px 0px;
    cursor: pointer;
    z-index: 1103;
    display: none;
}

#fancybox-error {
    color: #444;
    font: normal 12px/20px Arial;
    padding: 14px;
    margin: 0;
}

#fancybox-img {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    line-height: 0;
    vertical-align: top;
}

#fancybox-frame {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

#fancybox-left, #fancybox-right {
    position: absolute;
    bottom: 0px;
    height: 100%;
    width: 35%;
    cursor: pointer;
    outline: none;
    background: transparent url('blank.gif');
    z-index: 1102;
    display: none;
}

#fancybox-left {
    left: 0px;
}

#fancybox-right {
    right: 0px;
}

#fancybox-left-ico, #fancybox-right-ico {
    position: absolute;
    top: 50%;
    left: -9999px;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    cursor: pointer;
    z-index: 1102;
    display: block;
}

#fancybox-left-ico {
    background-image: url('fancybox.png');
    background-position: -40px -30px;
}

#fancybox-right-ico {
    background-image: url('fancybox.png');
    background-position: -40px -60px;
}

#fancybox-left:hover, #fancybox-right:hover {
    visibility: visible; /* IE6 */
}

#fancybox-left:hover span {
    left: 20px;
}

#fancybox-right:hover span {
    left: auto;
    right: 20px;
}

.fancybox-bg {
    position: absolute;
    padding: 0;
    margin: 0;
    border: 0;
    /*width: 20px;
    height: 20px;*/
    width: 0px;
    height: 0px;
    z-index: 1001;
}

#fancybox-bg-n {
    top: -20px;
    left: 0;
    width: 100%;
    background-image: url('fancybox-x.png');
}

#fancybox-bg-ne {
    top: -20px;
    right: -20px;
    background-image: url('fancybox.png');
    background-position: -40px -162px;
}

#fancybox-bg-e {
    top: 0;
    right: -20px;
    height: 100%;
    background-image: url('fancybox-y.png');
    background-position: -20px 0px;
}

#fancybox-bg-se {
    bottom: -20px;
    right: -20px;
    background-image: url('fancybox.png');
    background-position: -40px -182px; 
}

#fancybox-bg-s {
    bottom: -20px;
    left: 0;
    width: 100%;
    background-image: url('fancybox-x.png');
    background-position: 0px -20px;
}

#fancybox-bg-sw {
    bottom: -20px;
    left: -20px;
    background-image: url('fancybox.png');
    background-position: -40px -142px;
}

#fancybox-bg-w {
    top: 0;
    left: -20px;
    height: 100%;
    background-image: url('fancybox-y.png');
}

#fancybox-bg-nw {
    top: -20px;
    left: -20px;
    background-image: url('fancybox.png');
    background-position: -40px -122px;
}

#fancybox-title {
    font-family: Helvetica;
    font-size: 12px;
    z-index: 1102;
}

.fancybox-title-inside {
    padding-bottom: 10px;
    text-align: center;
    color: #333;
    background: #fff;
    position: relative;
}

.fancybox-title-outside {
    padding-top: 10px;
    color: #fff;
}

.fancybox-title-over {
    position: absolute;
    bottom: 0;
    left: 0;
    color: #FFF;
    text-align: left;
}

#fancybox-title-over {
    padding: 10px;
    background-image: url('fancy_title_over.png');
    display: block;
}

.fancybox-title-float {
    position: absolute;
    left: 0;
    bottom: -20px;
    height: 32px;
}

#fancybox-title-float-wrap {
    border: none;
    border-collapse: collapse;
    width: auto;
}

#fancybox-title-float-wrap td {
    border: none;
    white-space: nowrap;
}

#fancybox-title-float-left {
    padding: 0 0 0 15px;
    background: url('fancybox.png') -40px -90px no-repeat;
}

#fancybox-title-float-main {
    color: #FFF;
    line-height: 29px;
    font-weight: bold;
    padding: 0 0 3px 0;
    background: url('fancybox-x.png') 0px -40px;
}

#fancybox-title-float-right {
    padding: 0 0 0 15px;
    background: url('fancybox.png') -55px -90px no-repeat;
}

/* IE6 */

.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }

.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }

.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }

.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame {
    height: expression(this.parentNode.clientHeight + "px");
}

#fancybox-loading.fancybox-ie6 {
    position: absolute; margin-top: 0;
    top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px');
}

#fancybox-loading.fancybox-ie6 div  { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }

/* IE6, IE7, IE8 */

.fancybox-ie .fancybox-bg { background: transparent !important; }

.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }

【讨论】:

    【解决方案2】:

    如果您有一个 1x1 像素的图像,您可以使用颜色而不是图像作为背景。因为该图像只有一种颜色。

    【讨论】:

    • 是的,但是当您应用不透明度时,您也将其应用于文本到幻想框中,而不仅仅是在背景中
    • 看看@Alex Ball 的评论。
    • 不,他的解决方案不适合我,更改叠加层适用于所有页面,而不仅仅是内容
    【解决方案3】:

    将背景图片添加到#fancybox-wrap

    #fancybox-wrap {
        position: absolute;
        top: 0;
        left: 0;
        padding: 20px;
        z-index: 1101;
        outline: none;
        display: none;
        background: url('sfondo_fancy.png') repeat;
    }
    

    【讨论】:

    • 在这种模式下不能应用fancybox内容的背景,wrap的背景必须是透明的,只有内容必须应用背景
    • 好的,尝试不删除我告诉你的内容,将它们都保留在那里。
    • 不,换行取背景,内容不显示为白色,不透明,您可以在换行中看到内容的影子
    • 从样式表中删除阴影图像,并尝试找到任何白色背景颜色,它可能有不同的形式:#fff#ffffffwhite。把白色背景也去掉,换成你自己的图片。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2011-02-28
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多