jQuery - animate()属性

Ale*_*lex 1 javascript string variables jquery

我正在使用jQuery的animate函数,如下所示:

var css1 = {
      display: "block",
      marginTop: 20
    };

var direction = "marginTop";

$(element).animate(css1, 150, 'swing'); 
Run Code Online (Sandbox Code Playgroud)

注意marginTop上面的属性.好吧,我想用方向变量替换它,但由于某种原因它不起作用.有谁知道为什么?

稍后编辑:基本上我想要替换:

var css1 = {
      display: "block",
      marginTop: 20
    };
Run Code Online (Sandbox Code Playgroud)

var css1 = {
      display: "block",
      direction: 20
    };
Run Code Online (Sandbox Code Playgroud)

问题是jQuery似乎没有将"方向"识别为"marginTop"属性

Nic*_*ver 5

您可以使用括号表示法执行动态属性,如下所示:

var direction = "marginTop";
var css1 = { display: "block" };
css1[direction] = 20;

$(element).animate(css1, 150, 'swing');
Run Code Online (Sandbox Code Playgroud)

这样做css1.marginTop也可以通过访问 css1["marginTop"],并且可以使用一个变量用于第二(括号符号)版本.