2012-07-26 23 views
1

編輯,以使問題更加簡潔。我可以使用.outerWidth()用的.css()將其移動到右邊

我可以使用.css()方法內的ou​​terWidth()值來將「#item」的位置偏移兩倍寬度。

例如:

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

接受的答案,很大程度上指的是原來的(更令人費解的和廣泛的)問題,我問涵蓋更廣泛的功能集,我發展。

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

這適當地移動了元素,而不依賴於outerWidth()值。

回答

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'}); 
}); 
+1

由於我有1個排序,步驟2和3完美地回答了這個問題。 謝謝! – 2012-07-26 12:23:48

1

嘗試這種情況:

​​

outerWidth()是一個jQuery方法和使用,你應該在首先創建一個jQuery對象(通過選擇的元件)。請注意,在JavaScript乘法你應該使用*運營商不x

+0

謝謝你的outerWidth的這種解釋()。提供的整數將要+「px」 – 2012-07-26 22:47:11

0

從jQuery .css()文檔:

在jQuery 1.6,的CSS()接受類似於.animate相對值()。相對值是以+ =或 - =開始的字符串,用於遞增或遞減當前值。例如,如果一個元素的填充左是10px的,的CSS(「填充左」,「+ = 15」)將導致總填充左25像素的。

從這一點,我想你想要的是:

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

注:我假設outerwidth是在上面的代碼行的有效功能(可能是你自己寫的)。

0

你在找這個?

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

應該做的伎倆

相關問題