在jquery循环后得到图像宽度?

时间:2010-12-17 00:27:52

标签: javascript jquery resize jquery-cycle

我一直在尝试为jquery循环实现javascript resize但是当我转到下一张幻灯片并调整浏览器窗口大小时,我放松了图像的宽度,一切都变成了香蕉。不知道接下来要做什么......

这是javascript:

jQuery(function($) {
function resizeImage() {
var slideImageHeight = $(window).height()-110,
    slideImageWidth = $('#slideshow img').width(),
    slideShowImageHeight = $(window).height()-123;

    $('.gallery_item').css('height', slideImageHeight);
    $('#slideshow img').attr('height', slideImageHeight);

    $('#slideshow').css('height', slideShowImageHeight);
    $('#slideshow img').attr('height', slideShowImageHeight);

    $('.pgwrap').css('width',slideImageWidth);
};
$(window).resize(function(){
     resizeImage();
}).trigger('resize');

$(window).load(function(){
     resizeImage();
});

$('#slideshow').cycle({
    fx:     'scrollHorz', 
    speed: 200, 
    prev:   '#prev', 
    next:   '#next', 
    timeout: 0 
});

});

你也可以在这里看到它运行。 http://stoorage.com/index2.html

1 个答案:

答案 0 :(得分:1)

我在这里看到几个问题:

1)'#slideshow img'不是离散的,因为#slideshow中有多个图像。 2)调整大小函数本身在窗口加载和调用时被调用。调整大小,但不是在循环图像后。

粗略的调查表明该插件通过其'after'参数确实支持回调,所以试试这个:

$('#slideshow').cycle({
  fx:     'scrollHorz', 
  speed: 200, 
  prev:   '#prev', 
  next:   '#next', 
  timeout: 0,
  after: resizeImage 
});

我认为你可以通过扩展选择器来缓解问题1):

slideImageWidth = $('#slideshow img:visible').width()