1

编辑使问题更简洁。

我可以使用 .css() 方法中的 outerWidth() 值将“#item”的位置偏移两倍的宽度吗?

例如:

$("#item").css("left", - (2 x outerwidth(this)));

公认的答案主要是指我提出的原始(更复杂和更广泛)问题,其中包含我正在开发的更广泛的功能。

elem.css('left', $(window).width()+'px'); 

这适当地移动了元素,而不依赖于 outerWidth() 值。

4

5 回答 5

1

像这样的东西:

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'});
});
于 2012-07-26T12:10:54.783 回答
1

尝试这个:

$("#item").css("left", - (2 * $('#item').outerWidth()));

outerWidth()是一个 jQuery 方法,为了使用它,您首先应该创建一个 jQuery 对象(通过选择一个元素)。请注意,在 JavaScript 中进行乘法运算时,您应该使用*not 运算符x

于 2012-07-26T12:08:20.323 回答
0

来自 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在上面的代码行中是一个有效的函数(可能是你自己写的)。

于 2012-07-26T12:08:39.123 回答
0

你在找这个吗?

$("#item").css("left", function(i, oldLeft){
    return -2*$(this).outerWidth();
});
于 2012-07-26T12:08:40.053 回答
0
$("#item").css("left", - (2 * $("#item").outerwidth()));

应该做的伎俩

于 2012-07-26T12:08:43.000 回答