Mozilla Firefox的问题和功能执行

时间:2011-05-23 13:56:51

标签: jquery function firefox execution

大家好我这个代码有问题。当我在IExplorer 9,Chrome 12.0.742.30开发和Opera 11.10下尝试代码时 - 代码正常工作但在Firefox 3和4代下代码运行缓慢。我的意思是当我在第三张图片和图片大小是400x400px并且我按下“上一个”/“下一个”时,函数updateLightBox()必须调整大小与第二张图片大小的容器,但事实并非如此。第二张图片尺寸是200x200px但下次当我按下“上一张”/“下一张”时,容器会得到这个尺寸,但第一张图片尺寸不同,图片不在显示器的中央,按钮不在他们的地方。

$('div#next').unbind().bind('click', function() {
    if(currentImage == arrayLength-1) {
        var Image = 0;
    }
    else {
        var Image = currentImage+1;
    }
    $('img#image').attr('src', imageArray[Image]);
    updateLightBox();
    cfg.activeImage = Image;
    currentImage = Image;
});
$('div#prev').unbind().bind('click', function() {
    if(currentImage == 0) {
        var Image = arrayLength-1;
    }
    else {
        var Image = currentImage-1;
    }
    $('img#image').attr('src', imageArray[Image]);
    updateLightBox();
    cfg.activeImage = Image;
    currentImage = Image;
});

函数updateLightBox()是:

function updateLightBox() {
    var imgWidth = $('img#image').width();
    var imgHeight = $('img#image').height();
    var top = (height - imgHeight) / 2;
    var left = (width - imgWidth) / 2;

    $('div#imgAlt').remove();
    $('span#imgNum').remove();
    $('div#alt').append('<div id="imgAlt">'+altArray[cfg.activeImage]+'</div>');
    $('div#alt').append('<span id="imgNum">'+(cfg.activeImage+1)+' / '+arrayLength+'</span>');
    $('img#image').attr('alt', altArray[cfg.activeImage]);

    $('div#lightbox').animate({
        'top': top,
        'left': left,
        'width': imgWidth+'px',
        'max-width': imgWidth+'px',
        'min-width': cfg.minContainerWidth+'px',
        'height': imgHeight+'px',
        'max-height': imgHeight+'px',
        'min-height': cfg.minContainerHeight+'px'
    }, cfg.containerResizeSpeed);

    $('div#image').animate({
        'position': 'absolute',
        'margin': 0,
        'padding': 0,
        'zIndex': 902,
    }, cfg.containerResizeSpeed);

    $('div#alt').animate({ 
        'width': imgWidth-20+'px',
    }, cfg.containerResizeSpeed);

    $('div#prev').animate({
        'top': (imgHeight / 2) - 16+'px',
    }, cfg.containerResizeSpeed);

    $('div#next').animate({
        'top': (imgHeight / 2) - 16+'px',
    }, cfg.containerResizeSpeed);

    $('div#imgAlt').css({
        'font-family': 'Times New Roman, Georgia, Serif',
        'font-size': '14px',
        'font-weight': 'bold',
        'color': cfg.altTextcolor,
    });

    $('span#imgNum').css({
        'font-family': 'Times New Roman, Georgia, Serif',
        'font-size': '11px',
        'font-weight': 'bold',
    });
}

如果有人知道如何解决它并告诉我,我将非常高兴和感激:)

关于, 乔治:]

1 个答案:

答案 0 :(得分:0)

调用更新函数后设置currentImage

updateLightBox();
cfg.activeImage = Image;
currentImage = Image;

应该是

cfg.activeImage = Image;
currentImage = Image;
updateLightBox();