编辑使问题更简洁。
我可以使用 .css() 方法中的 outerWidth() 值将“#item”的位置偏移两倍的宽度吗?
例如:
$("#item").css("left", - (2 x outerwidth(this)));
公认的答案主要是指我提出的原始(更复杂和更广泛)问题,其中包含我正在开发的更广泛的功能。
elem.css('left', $(window).width()+'px');
这适当地移动了元素,而不依赖于 outerWidth() 值。
像这样的东西:
var elem = $("#item");
// 1. animate to left
elem.animate({'left': -(2 * elem.outerWidth())+'px'}, function() {
// 2. move to outside right border
elem.css('left', $(window).width()+'px');
// 3. animate to starting position
elem.animate({'left': '0px'});
});
尝试这个:
$("#item").css("left", - (2 * $('#item').outerWidth()));
outerWidth()
是一个 jQuery 方法,为了使用它,您首先应该创建一个 jQuery 对象(通过选择一个元素)。请注意,在 JavaScript 中进行乘法运算时,您应该使用*
not 运算符x
。
来自 jQuery.css()
文档:
从 jQuery 1.6 开始,.css() 接受类似于 .animate() 的相对值。相对值是一个以 += 或 -= 开头的字符串,用于增加或减少当前值。例如,如果一个元素的 padding-left 为 10px,.css( "padding-left", "+=15" ) 将导致总 padding-left 为 25px。
从那,我认为你想要的是:
$("#item").css("left", "-=" + (2 x outerwidth(this)));
注意:我假设outerwidth
在上面的代码行中是一个有效的函数(可能是你自己写的)。
你在找这个吗?
$("#item").css("left", function(i, oldLeft){
return -2*$(this).outerWidth();
});
$("#item").css("left", - (2 * $("#item").outerwidth()));
应该做的伎俩