我正在製作一個簡單的滾動圖像循環,第一個圖像穿過屏幕很好,但沒有任何後面,我是否正確使用「this」? 代碼:在jQuery中使用「this」在.next()之後調用
var width = $(window).width();
var height = $(window).height();
var size = (height + width)/2;
$(document).ready(function()
{
$('#pictureFrame').children('img').each(function(){$(this).css('left', '100%')});
});
window.onload = function(){startSlideshow($('#pictureFrame > img'))};
function startSlideshow(myobj) {
$(myobj).next().animate({left: "-=" + (width + 2000)},{
duration: 30000,
queue: false,
easing: 'linear',
complete: function() {
$(myobj).css('left', '100%')
}
});
time = ($(this).width()* 10)/(width + 2000);
setTimeout(startSlideshow($(this)),time);
}
HTML:
<div id="pictureFrame">
<img class="slideshow" src="img1.jpg">
<img class="slideshow" src="img2.jpg">
<img class="slideshow" src="img3.jpg">
<img class="slideshow" src="img4.jpg">
</div>
如果你使用:'startSlideshow($('#pictureFrame> img:first'))'???在你的代碼中,'$(myobj)'是所有圖像,而不僅僅是一個。而且你需要爲超時情況提供上下文。順便說一句,你的超時語法在這裏是錯誤的 –
'startSlideshow'有'window'作爲它的'this'對象。這可能不是你想要的。 –
我的印象是.next只有在包含多個兄弟的對象上調用時纔有效。那是錯的嗎? –