我创建了一个基本的轮播类型 slidshow,但是为了让它工作,我必须调用以下函数两次才能将 margin-left 属性实际设置为 0px。
$("#slide ul").stop().css('marginLeft', '0px');
我想知道我做错了什么,因为我是 jquery 的新手。
整个事情可以在这里找到http://jsfiddle.net/xZBZK/
只是为了方便起见的JavaScript:
var offset = 0;
var count;
var width = 500;
var height = 333;
var interval;
$(document).ready(function() {
count = $("#slide ul").children().length;
// Add the first image to the end so it loops.
$("#slide ul").children().first().clone().appendTo("#slide ul");
start();
});
function nextImage() {
$("#slide ul").stop();
offset+=width;
if(offset / width == count) {
$("#slide ul").animate({'marginLeft':'-'+offset+'px'}, 700, 'linear', resetImage);
}
$("#slide ul").animate({'marginLeft':'-'+offset+'px'}, 700);
return offset;
}
function resetImage() {
$("#slide ul").stop().css('marginLeft', '0px');
$("#slide ul").stop().css('marginLeft', '0px');
offset = 0;
//start();
}
function stop() {
clearInterval(interval);
}
function start() {
interval = setInterval(nextImage, 3000);
}
我正在使用JQuery 1.9.1