javascript - 将三元开关添加到按钮 - Javascript

标签 javascript html css

我写了一个小脚本来切换文本元素的可见性。每次元素变为可见时,它的颜色都会从蓝色变为红色或从红色变为蓝色。

我现在希望文本以特定顺序(红色、蓝色、绿色、红色、蓝色、绿色、红色...)在三种不同颜色(红色、蓝色、绿色)之间变化,但我很困惑如何来解决这个问题。

我已经尝试实现第三个数字来进行模数检查,但这样做并没有产生我正在寻找的结果,所以我的问题是:是否有实现三元开关的方法?

我不是在寻找任何一个答案,而是在寻找正确方向的插入力。目前我很难过。

代码如下:

var visible = false;
var hiddenCount = 0;
var pElement = document.getElementById("testVisibility");
function showElement() { 
    if ( visible = !visible ) {
        if ( hiddenCount % 4 == 0 ) {
            pElement.style.color = "red";
        } else if ( hiddenCount % 2 == 0 ) {
            pElement.style.color = "blue";
        }
        pElement.style.visibility = "visible";
    } else {
        pElement.style.visibility = "hidden";
    }
    hiddenCount++;
}

最佳答案

一个简单的方法是将颜色放入一个数组中,并维护一个根据需要递增的计数器。然后使用计数器从数组中获取索引。

您可以使用取模运算符使索引永远不会超过数组的顶部索引。

var visible = false;
var hiddenCount = 0;
var pElement = document.getElementById("testVisibility");
var colors = ["red", "blue", "green"]

function showElement() { 
    if ((visible = !visible)) { // Use the modulus to get index
        pElement.style.color = colors[hiddenCount % colors.length];
        pElement.style.visibility = "visible";
    } else {
        pElement.style.visibility = "hidden";
    }
    hiddenCount++;
}

我将 hiddenCount 保留在您拥有它的底部,尽管它总是递增,即使在隐藏时也是如此。如果您总是希望在显示时看到下一个颜色,则将增量移动到 if 语句。

关于javascript - 将三元开关添加到按钮 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634866/

相关文章:

javascript - 显示禁用按钮的弹出窗口

objective-c - UIWebView 和缩放图像 - 不一致的结果?

javascript - 如何更新h :inputtext in jsf

javascript - 如何在 React v0.13 中传输 Prop ?

javascript - 如何使用 toastr ?

javascript - 如何从数据库获取用户id

javascript - 如何在chart.js中显示每个切片的饼图数据值

javascript - 在新选项卡中打开页面时,JSON 或 AJAX 请求未显示在控制台中

Javascript 以循环方式遍历 12 部分数组

css - Bootstrap - 更改可见性时复选框组的布局间距中断