大家好我这个代码有问题。当我在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',
});
}
如果有人知道如何解决它并告诉我,我将非常高兴和感激:)
关于, 乔治:]
答案 0 :(得分:0)
调用更新函数后设置currentImage
updateLightBox();
cfg.activeImage = Image;
currentImage = Image;
应该是
cfg.activeImage = Image;
currentImage = Image;
updateLightBox();