IE7中的jQuery Lightbox动画问题

时间:2011-01-20 22:05:24

标签: javascript jquery internet-explorer-7

我正在使用此代码创建叠加层和重叠框:

// GENERAL OVERLAY BOX
var isOpen = false; // STATUS OF OVERLAY BOX
function showOverlayBox() { // DISPLAY BOX
    if( isOpen == false ) return; // DO NOTHING IF NOT SET TO OPEN
    var activeTab = $(this).attr("class");
    $('.overlayBox').css({ // OVERLAY BOX POSITION
        display:'block',
        left:( $(window).width() - $('.overlayBox').width() )/2,
        top:( $(window).height() - $('.overlayBox').height() )/2 -20,
        position:'absolute'
    });
    $('.bgCover').css({ // DARK BG
        display:'block',
        width: $(window).width(),
        height:$(window).height()
    });
}
function doOverlayOpen() { // OPEN
    isOpen = true; // SET STATUS TO OPEN
    showOverlayBox();
    $('.bgCover').css({opacity:0}).animate( {opacity:0.8, backgroundColor:'#000'} );
    return false;
    }
function doOverlayClose() { // CLOSE OVERLAY
    isOpen = false; //SET STATUS TO CLOSED
        $('.overlayBox').css( 'display', 'none' );
        //$('.bgCover').animate( {opacity:0}, null, null, function() { $(this).hide(); } ); WON'T WORK IN IE7
        $('.bgCover').hide();
        }
$(window).bind('resize',showOverlayBox);// IF WINDOW IS RESIZED, REPOSITION OVERLAY
$('.launchLink').click( doOverlayOpen ); // OPEN OVERLAY WHEN a.launchLink CLICKED
$('a.closeLink').click( doOverlayClose ); // CLOSE OVERLAY WHEN a.closeLink CLICKED

在IE7中,我打开和关闭内容框没有问题 - 问题在于.bgCover。它会动画,但不会使用$('.bgCover').animate( {opacity:0}, null, null, function() { $(this).hide(); } );制作动画。它会隐藏:$('.bgCover').hide();,但如果再次显示框叠加,则不会重新显示。 (在其他浏览器中没有问题)

有关正在发生的事情的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试

$('.bgCover').remove();

我发现使用hide()可能会对叠加层造成麻烦。