2016-02-03 240 views
0

可以說我有以下功能jQuery的動畫向左或向右變

function slide(element, direction, hide){ 
    if (direction == "left") { 
     $(element).animate({ 
      "left": 500, 
     }, 500, function(){ 
      if(hide) { 
       $(element).css("display", "none"); 
      } 
     }); 
    } else { 
     $(element).animate({ 
      "right": 500, 
     }, 500, function(){ 
      if(hide) { 
       $(element).css("display", "none"); 
      } 
     }); 
    } 
} 

其本身的偉大工程。但我想消除的if else詞來得到這樣的

function slide(element, direction, hide){ 
    $(element).animate({ 
     direction : 500, 
    }, 500, function(){ 
     if(hide) { 
      $(element).css("display", "none"); 
     } 
    }); 
} 

這在所有的不工作......有什麼辦法權在animate函數變量來控制左/?

+0

在'方向:500'中,變量不會被分析。 – Tushar

+1

http://stackoverflow.com/questions/882727/is-there-a-way-that-use-var-to-create-json-objects-with-a-key –

回答

1

用方向自己創建一個對象,然後在動畫函數中使用它,如下所示。

function slide(element, direction, hide) { 
    var obj = {}; 
    obj[direction] = 500; 

    $(element).animate(obj, 500, function() { 
     if (hide) { 
      $(element).css("display", "none"); 
     } 
    }); 
}