Javascript 文本幻灯片

Posted

技术标签:

【中文标题】Javascript 文本幻灯片【英文标题】:Javascript Text Slideshow 【发布时间】:2013-10-04 22:35:36 【问题描述】:

我正在尝试使用 javascript 和/或 jQuery 将文本添加到 div 中,然后每隔 10 秒将该文本更改为不同的文本 - 这有点像纯文本的幻灯片。这是我的代码:

<div id="textslide"><p></p></div>

<script>

var quotes = new Array();

quotes[0] = "quote1";
quotes[1] = "quote2";
quotes[2] = "quote3";
quotes[3] = "quote4";
quotes[4] = "quote5";

var counter = 0;

while (true) 
    if (counter > 4) counter = 0;
    document.getElementById('textslide').firstChild.innerhtml = quotes[counter];
    counter++;
    setTimeout( // not sure what to put here, 500); // Want to delay loop iteration


</script>

【问题讨论】:

setTimeout 的第一个参数是一个函数。 setTimeout 只是递归地调用该函数。所以在你的情况下,只需将js代码放在一个函数中,然后将该函数的名称写为第一个arg。 【参考方案1】:

HTML:

<div id="textslide"><p></p></div>

JavaScript/jQuery:

var quotes = [
    "quote1",
    "quote2",
    "quote3",
    "quote4",
    "quote5",
    ];

var i = 0;

setInterval(function() 
$("#textslide").html(quotes[i]);
    if (i == quotes.length) 
        i = 0;
    
    else 
        i++;
    
, 10 * 1000);

Working demo here

【讨论】:

【参考方案2】:

这是一个简单的 JS 建议

function loop() 
    if (counter > 4) counter = 0;
    document.getElementById('textslide').firstElementChild.innerHTML = quotes[counter];
    counter++;
    setTimeout(loop, 500);

loop();

演示here

如果你想使用 jQuery 你可以使用这个:$('#textslide p:first').text(quotes[counter]);

演示here

【讨论】:

【参考方案3】:

而不是while,使用:

setInterval(function () 
    //do your work here
, 10000);

【讨论】:

不是setIntervale,而是setInterval【参考方案4】:

使用一个函数并在 body onload 上调用它

<html>
    <head>
        <script>
        var counter = 0;

        function changeText()
        
        var quotes = new Array();

        quotes[0] = "quote1";
        quotes[1] = "quote2";
        quotes[2] = "quote3";
        quotes[3] = "quote4";
        quotes[4] = "quote5";

        if (counter > 4)
            
            counter = 0;
            

        document.getElementById("textslide").innerHTML = quotes[counter];

        setTimeout(function()changeText(),10000);
        counter ++;
        
        </script>
    </head>
    <body onload="changeText();">
        <p id="textslide"></p>
    </body>
</html>

【讨论】:

以上是关于Javascript 文本幻灯片的主要内容,如果未能解决你的问题,请参考以下文章

纯 javascript 文本滑块,可更改 php 中的文本显示

搜索文本并用 JavaScript 替换

JavaScrip笔记心得(持续更新)

JavaScrip笔记心得(持续更新)

JavaScrip笔记心得(持续更新)

将 Slick 轮播导航箭头与幻灯片图像而不是其下方的文本垂直对齐