我可以使用带有.css()的.outerWidth()将其移动到右侧

时间:2012-07-26 12:05:02

标签: jquery css width

编辑以使问题更简洁。

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

例如:

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

接受的答案很大程度上是指我提出的原始(更复杂和更广泛)的问题,包括我正在开发的更广泛的功能。

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

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

5 个答案:

答案 0 :(得分:1)

试试这个:

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

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

答案 1 :(得分: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'});
});

答案 2 :(得分:0)

来自jQuery .css()文档:

  

从jQuery 1.6开始,.css()接受类似于.animate()的相对值。相对值是以+ =或 - =开头的字符串,用于递增或递减当前值。例如,如果元素的填充左边是10px,则.css(“padding-left”,“+ = 15”)将导致25px的左边填充。

从那以后,我想你想要的是:

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

注意:我假设outerwidth是上述代码行中的有效函数(可能是您自己编写的)。

答案 3 :(得分:0)

你在找这个吗?

$("#item").css("left", function(i, oldLeft){
    return -2*$(this).outerWidth();
});

答案 4 :(得分:0)

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

应该做的伎俩