javascript - 使用 <span> 彩虹滚动文本

标签 javascript html function button text

我想使用 JavaScript 将一小段文字转换为彩虹文本,其中颜色从右向左无限循环滚动。我目前有这一段:

<div id="rainbow">
  <p id="rtext">
    <span id="s1" style="color: red">H</span>
    <span id="s2" style="color: blue">e</span>
    <span id="s3" style="color: green">l</span>
    <span id="s4" style="color: purple">l</span>
    <span id="s5" style="color: orange">o</span>
    <span id="s6" style="color: magenta">!</span>
  </p>
</div>

<div id="actbtn">
    <button onclick="activ()">Click for RAINBOW!</button>
</div>`

我对 JavaScript 相当陌生,所以我不知道如何编写 activ()无限滚动颜色的功能。

编辑: 我要感谢 Ben 的循环脚本,但现在我还需要知道如何使用 activ()更改 <span> 颜色的函数元素。我尝试过以下脚本: function activ() { document.getElementById("s1").style.color = 'magenta'; } 但颜色不会改变。我试图使脚本尽可能简单,但又使其能够工作。

最终编辑: 我使用了 Ivan 的“UPD Without JQuery”代码并添加了一些颜色,这就是我最终得到的结果:

<script>
function EyeVommit() {
    document.getElementById("actbtn").style.display = 'none';
    'use strict';
    var colors = ['red', 'blue', 'green', 'purple', 'orange', 'magenta', 'chartreuse', 'cyan', 'yellow'],
        target = document.getElementById('rtext').children,
        i,
        len = colors.length,
        inter = setInterval(function() {
            colors.unshift(colors.pop());
            for (i = 0; i < len; i++) {
                target[i].style.color = colors[i];
            }
        }, 200);
}
</script>
<div id="table1">
<p id="rtext"> <span id="s1">H</span><span id="s2">e</span><span id="s3">l</span><span  id="s4">l</span><span id="s5">o</span><span id="s6">!</span>

    <br />
    <div id="actbtn">
        <button onclick="EyeVommit()">Pabam!</button>
    </div>
</p>

The result.

最佳答案

我求求你,永远、永远、永远不要在设计中使用它

<html>
    <head>
        <title>Price</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    </head>
    <body>
<script>
    function EyeVommit() {
        'use strict';
        var colors = ['red', 'blue', 'green', 'purple', 'orange', 'magenta'],
            $target = $('#rtext span'),
            counter,
            i,
            len = colors.length,
            inter;
            for (i = 0; i < len; i++) {
                $target[i] = $($target[i]);
            }
            inter = setInterval(function () {
                colors.unshift(colors.pop());
                for (i = 0; i < len; i++) {
                    $target[i].css('color', colors[i]);
                }
            }, 200);
    }
</script>
<div id="table1">
    <p id="rtext">
        <span id="s1">H</span>
        <span id="s2">e</span>
        <span id="s3">l</span>
        <span id="s4">l</span>
        <span id="s5">o</span>
        <span id="s6">!</span>
    </p>
</div>
<script>
EyeVommit();
</script>
    </body>
</html>

没有 jQuery 的 UPD

<script>
    function EyeVommit() {
        'use strict';
        var colors = ['red', 'blue', 'green', 'purple', 'orange', 'magenta'],
            target = document.getElementById('rtext').children,
            i,
            len = colors.length,
            inter = setInterval(function () {
                colors.unshift(colors.pop());
                for (i = 0; i < len; i++) {
                    target[i].style.color = colors[i];
                }
            }, 200);
    }
</script>
<div id="table1">
    <p id="rtext">
        <span id="s1">H</span><span id="s2">e</span><span id="s3">l</span><span id="s4">l</span><span id="s5">o</span><span id="s6">!</span>
        <button onclick="EyeVommit()">Pabam!</button>
    </p>
</div>

关于javascript - 使用 <span> 彩虹滚动文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24842884/

相关文章:

javascript - 在angularJS中向数组添加另一个变量

javascript - 点击后需要隐藏一段文字

javascript - 如何使用jquery Ajax调用来调用类的方法

javascript - 如何借助jquery显示消息?

html - Photoshop 到 CSS

mysql - 在组函数中使用组函数

javascript - 单击将单选按钮值插入 mysql

html - 使用 R Markdown 在 HTML 演示文稿中建立超链接

c++ - 带有模板函数的未解析外部符号

javascript - Sprite 动画: function not recognized and semi-colon expected in for-loop