2017-06-18 33 views
-1

我創建了腳本以根據其他按鈕位置從左向右切換內容。代碼相當大,因爲這麼簡單。我如何更改/壓縮代碼,以便它不佔用太多空間並且更快?壓縮代碼,替換開關函數(javascript)

switch(id) { 
    case "menu-button-1": 
    changActive(idElem); 
    $("#offert").css("transform","translateX(200%)"); 
    $("#gallery").css("transform","translateX(200%)"); 
    $("#contact").css("transform","translateX(200%)"); 
    break; 

    case "menu-button-2": 
    changActive(idElem); 
    $("#home").css("transform","translateX(-200%)"); 
    $("#gallery").css("transform","translateX(200%)"); 
    $("#contact").css("transform","translateX(200%)"); 
    break; 

    case "menu-button-3": 
    changActive(idElem); 
    $("#home").css("transform","translateX(-200%)"); 
    $("#offert").css("transform","translateX(-200%)"); 
    $("#contact").css("transform","translateX(200%)"); 
    break; 

    case "menu-button-4": 
    changActive(idElem); 
    $("#home").css("transform","translateX(-200%)"); 
    $("#offert").css("transform","translateX(-200%)"); 
    $("#gallery").css("transform","translateX(-200%)"); 
    break; 
} 

jsfiddle

回答

0
var index=id.split("-")[2]-1; 
["home","offert","gallery","contact"] 
.forEach((el,i)=>{ 
    if(i<index){ 
    $("#"+el).css("transform","translateX(-200%)"); 
    } 
    if(i>index){ 
    $("#"+el).css("transform","translateX(200%)"); 
    } 
}); 

簡單翻譯的情況下指數起來畢竟下來之前的所有元素。

+0

它是如何工作的? –

+0

它只能走向一個方向:( –

+0

@d。Nizio編輯。我認爲你應該有一個更深入的陣列和他們的方法... –