我很难解释所以我只会展示我想要做的事情:
这项工作很好:
$(this).animate({ top: 200 }, 500);
我正在尝试用变量
替换'top'值 像这样:var x = 'top';
if (condition) { x = 'left'; }
$(this).animate({ x: 200 }, 500);
但这失败了。
答案 0 :(得分:3)
您正在传递一个对象 - 事先像这样定义它。其中x可以是任何东西,即'top','left'等等。
obj[x] = 200;
$(this).animate(obj, 500);
答案 1 :(得分:2)
你可以试试这个。
var pos = {'top':200};
if (condition) { pos = {'left':200}; }
$(this).animate(pos, 500);
答案 2 :(得分:0)
顶部是parameter。您可以传递任何CSS属性。
动画将移动的CSS属性的地图。
答案 3 :(得分:0)
我参加派对有点晚了,但如果您使用ES6,可以用它来计算对象密钥:
x = 'top';
if (condition) { x = 'left'; }
$(this).animate({ [x]: 200 }, 500);
参考:MDN