'x'时间后javascript图像发生变化

时间:2011-08-16 23:22:38

标签: javascript image timer

如何向此js添加计时器,以便在'x'时间后图像会自动更改。目前,通过带有'rel'属性的'a href'进行更改,但仍需要具有'rel'的功能。

js:

$(document).ready(function (){
    $('#button a').click(function(){
        var integer = $(this).attr('rel');
        $('#myslide .cover').css({left:-1476*(parseInt(integer)-1)}).hide().fadeIn(); /*----- Width of div mystuff (here 160) ------ */
        $('#button a').each(function(){
        $(this).removeClass('active');
            if($(this).hasClass('button'+integer)){
                $(this).addClass('active')}
        });
    }); 
});

HTML:

<div id="myslide">
<div class="cover">

    <div class="mystuff">
        <img src="images/header_01.jpg" rel="1"></img>
        <img src="images/header_02.jpg" rel="1"></img>
        <img src="images/header_03.jpg" rel="1"></img>
    </div>
</div>

2 个答案:

答案 0 :(得分:5)

您应该考虑使用setInterval和一组图像来更改源。这将迫使图像连续循环

var images = ['header_01.jpg','header_02.jpg','header_03.jpg'], 
    index = 0, // starting index
    maxImages = images.length - 1;
var timer = setInterval(function() {
    var curImage = images[index];
    index = (index == maxImages) ? 0 : ++index;
    // set your image using the curImageVar 
    $('div.mystuff img').attr('src','images/'+curImage);
 }, 1000);

答案 1 :(得分:0)

您可以使用setTimeout函数调用预定义函数来更改图像,如下所示:

var changeImage = function (){
<code>
};
var t = setTimeout(changeImage, <time in milliseconds>);

确保您没有致电setTimeout(changeImage(), <time in milliseconds>);(请注意两个括号)

这是要避免的,你应该尝试使用函数而不是字符串作为setTimeout()的第一个参数进行评估。

或者,您可以使用匿名函数而不是创建changeImage。 实施例

var t = setTimeout(function() { <code>}, <time in milliseconds>);