html代码:
<div id="rotatorholder">
<div id="slide1" class="slide"></div>
<div id="slide2" class="slide"></div>
<div id="slide3" class="slide"></div>
</div>
CSS 代码:
#rotatorholder {
margin: 0;
border-bottom: 1px solid #cacaca;
height: 100px;
overflow: hidden;
}
#rotatorholder .slide {
height: 100px;
width: 100%;
}
#rotatorholder #slide1 {
background: transparent url('http://swiatlemmalowane.pl/tmp/test.jpg') 50% 0 no-repeat;
}
#rotatorholder #slide2 {
background: transparent url('http://swiatlemmalowane.pl/tmp/test.jpg') 50% 0 no-repeat;
}
#rotatorholder #slide3 {
background: transparent url('http://swiatlemmalowane.pl/tmp/test.jpg') 50% 0 no-repeat;
}
js代码:
$('#rotatorholder').cycle({
before: function () {
console.log($('#rotatorholder').width());
$("#rotatorholder div.slide").each(function () {
$(this).width($('#rotatorholder').width());
})
}
after: function () {
console.log($('#rotatorholder').width());
$("#rotatorholder div.slide").each(function () {
$(this).width($('#rotatorholder').width());
})
}
});
$(window).resize(function () {
var boxwidth = $('#rotatorholder').width();
$("#rotatorholder div.slide").each(function () {
$(this).width(boxwidth);
})
});
问题:在调整浏览器窗口大小之前,一切正常。之后 .slide 元素根据原始的#rotatorholder 宽度固定其宽度。我已经设法在调整窗口大小时修复了元素宽度(第二个 js 部分),元素也通过在 jQuery Cycle 标注中使用“之前”获得了正确的新宽度,但仍然在一秒钟后,它们达到了它们的原始宽度。
看看: http: //jsfiddle.net/Cyberek /Q7bAJ/
以较小的浏览器宽度运行它,然后重新缩放到浏览器以更大的宽度 - 图像的“中心”应该仍然在中心并且它正在调整大小,但是当您停止调整大小并等待循环更改元素时,幻灯片的宽度会以某种方式变为原始容器宽度。
感谢帮助。