2017-06-18 29 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编辑。我认为你应该有一个更深入的阵列和他们的方法... –