1

所以我有这段代码可以在刷新时修改 div 的内容。

但我也希望它在一段时间内淡入淡出一个新的随机文本。我不知道从哪里开始这是我的原始代码:

HTML:

<div id="logo" class="container">
    <h1>InsiderIndy</h1>
    <p id="myQuote">Slogan</p>
</div>

JavaScript:

<script type="text/javascript">
var myQuotes = new Array();

myQuotes[0] = "Quote1";
myQuotes[1] = "Quote2";
myQuotes[2] = "Quote3"
myQuotes[3] = "Quote4"
myQuotes[4] = "Quote5"
myQuotes[5] = "Quote6"

var myRandom = Math.floor(Math.random()*myQuotes.length);

$('#myQuote').html(myQuotes[myRandom]);
</script>

有任何想法吗?谢谢!:)

4

3 回答 3

2

完整的工作示例,具有渐变速度、旋转之间的暂停时间和开始位置的可调节功能。当它到达结尾时也返回到开头:

编辑:我第一次读你的问题太快了,写了一个顺序轮换的函数。我已经更新了我的答案以包含两个函数——一个用于顺序旋转startSeq(),第二个用于随机旋转startRandom()

提琴手

function startSeq(i,iSpeed, iPause) {

    $('#myQuote').html(myQuotes[i]);
    $('#myQuote').fadeIn(iSpeed,function() {
        setTimeout(function() {
            $('#myQuote').fadeOut(iSpeed,function() {
                setTimeout(function() {
                     if (i++ == myQuotes.length) i =0;
                    startSeq(i,iSpeed,iPause); 
                },iPause);
            });
        },iPause);
    });
}

function startRandom(iSpeed, iPause) {
    var i = Math.floor(Math.random()*myQuotes.length);
    $('#myQuote').html(myQuotes[i]);
    $('#myQuote').fadeIn(iSpeed,function() {
        setTimeout(function() {
            $('#myQuote').fadeOut(iSpeed,function() {
                setTimeout(function() {
                    startRandom(iSpeed,iPause); 
                },iPause);
            });
        },iPause);
    });
}

//startSeq(0,1000,1000);
startRandom(1000,1000);
于 2013-01-30T00:00:26.240 回答
1

看起来像 jQuery,所以...

(function quote() {
    var myRandom = Math.floor(Math.random()*myQuotes.length);

    $('#myQuote').delay(5000)
                 .fadeOut(500, function() {
                     $(this).text(myQuotes[myRandom])
                            .fadeIn(500, quote);
                  });
})();

您可能应该花一些时间研究一下jQuery 文档

于 2013-01-29T23:57:02.987 回答
1

使用 jQuery:

var refreshMillis = 10 * 1000; // 10 seconds.
setInterval(function() {
  var myRandom = Math.floor(Math.random()*myQuotes.length)
    , $myQuote = $('#myQuote');
  $myQuote.fadeOut(function() {
    $myQuote.html(myQuotes[myRandom]).fadeIn();
  });
}, refreshMillis);

这是一个有效的 jsFiddle

于 2013-01-29T23:57:10.520 回答