我正在构建一个函数来定期更新HTML节点的背景位置。该函数适用于单个节点,但在多节点上调用时(在以下示例中),只有最后一个节点受此函数影响。无法启动多个setInterval
根据函数内的警报(索引),为每个节点调用setInverval()。我想不出为什么它不生效。
var bgImgAnimate = function (settings) {
$.each(settings.nodeList, function (index, node) {
thisNode = $(node);
var thisPosition;
setInterval(function() {
alert(index);
//calculate the position before position the image
thisPosition = - settings.frameWidth * settings.currentFrame;
thisNode.css('backgroundPosition', (thisPosition + 'px') + ' ' + (settings.verticalPos + 'px'));
}, settings.interval);
});
};
var settings = {
nodeList: $('#star1, #star2, #star3'),
verticalPos: 0,
currentFrame: 1,
frameWidth: 26,
startTime: 2,
frameNumber: 10,
interval: 200
}
bgImgAnimate(settings);