【问题标题】:Jquery switch through color instead of fadeJquery通过颜色而不是淡入淡出切换
【发布时间】:2011-12-03 00:12:09
【问题描述】:

我怎样才能在元素字体颜色的下面的数组之间进行 jquery 切换?

colors1 = ["ffffff", "eeeeff", "ddddff", "ccccff", "bbbbff", "aaaaff", "9999ff", "8888ff", "7777ff", "6666ff", "5555ff", "4444ff", "3333ff", "2222ff", "1111ff", "0000ff"]

基本上我想做的是让一个元素使用这个颜色数组淡入淡出。我尝试使用 jQuery 的动画 (animate({opacity:1}, { queue: false, duration: 1500 })),但由于我们 100% 的时间使用 IE,因此 IE6/7 中的不透明度动画看起来很差。它在动画中看起来真的很垃圾,fadeIn 和fadeOut 也是如此。我没有过滤器问题,因为我知道在动画或淡入淡出完成后将其删除。我相信新的动画 api 也会自动删除过滤器。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    随着时间的推移循环并更改 CSS。

    HTML:

    <div id="test">Testing text</div>
    

    JS:

    var colors1 = ["ffffff", "eeeeff", "ddddff", "ccccff", "bbbbff", "aaaaff", "9999ff", "8888ff", "7777ff", "6666ff", "5555ff", "4444ff", "3333ff", "2222ff", "1111ff", "0000ff"]
    var i = 0;
    
    var animate = function switchColor() {
        if (i < colors1.length) {
            $('#test').css('color', '#' + colors1[i]);
            i++;
        } else {
            clearInterval(animate);
        }
    }
    
    $(document).ready(function() {
        setInterval(animate, 1000);
    });
    

    http://jsfiddle.net/kSsUL/38/

    【讨论】:

    • 谢谢,但我收到此错误“未定义 switchColor”
    • 这只会改变一次颜色,如果它运行多次,它将超出数组的末尾。另外,不要将字符串传递给使用 eval 的 setTimeout。只需传递函数。
    • 好点詹姆斯,我刚刚很快将第一个答案放在一起。我现在已经更新了。
    • 太棒了!谢谢,这帮助很大!有没有办法扭转它?那么它完成后会倒退吗?
    • 当然,向后遍历循环而不是 clearInterval()。我相信您可以自己弄清楚该代码,只需注意跟踪您是向后还是向前并相应地迭代 i (+/-)
    猜你喜欢
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2017-10-29
    • 2011-09-06
    • 2015-04-07
    • 2016-12-15
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多