2017-03-06 32 views
0

我寫了一個腳本來切換文本元素的可見性。每當元素變得可見時,它的顏色從藍色變爲紅色或從紅色變爲藍色。將三元開關添加到按鈕 - Javascript

我現在希望文本在特定順序(紅色,藍色,綠色,紅色,藍色,綠色,紅色,......)之間在三種不同顏色(紅色,藍色,綠色)之間變化,但我很困惑如何解決這個問題。

我試過執行第三個數字來做模數檢查,但是這樣做並沒有找到我正在尋找的結果,所以我的問題是這樣的:有沒有實現三元開關的方法?

我不是在尋找任何答案,但更多的是在正確的方向推動。目前我很難過。

的代碼如下:

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++; 
} 

回答

2

一個簡單的方法做,這是擺在Array的顏色,並保持了一個按需增加計數器。然後使用計數器從數組中獲取索引。

您可以使用模數運算符使索引永遠不超過數組的頂部索引。

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聲明。