2012-01-29 96 views
0

我環顧四周,但我找不到答案,我也不知道該怎麼做。我在尋找的是一個JavaScript或jQuery腳本,它可以將背景圖像「移動」到div容器的右側,以便該模式具有「動畫效果」。如何移動背景圖案圖案?

怎麼可能做到這一點?如果我沒有足夠詳細地解釋這個問題,我很抱歉。

回答

2

您可以使用CSS background-position屬性來設置背景的位置。

這裏是一個live example,它將背景每一秒移動一個像素到右邊,當它達到100像素時重置。

HTML:

<div id="theDiv">This is the div</div> 

CSS:

#theDiv { 
    background-image: url(http://www.gravatar.com/avatar/7b13c109d50df67d5f7d0b1d901d7fb7?s=32&d=identicon&r=PG); 
    background-repeat: no-repeat; 
} 

的JavaScript:

jQuery(function($) { 

    var pos = 0; 
    move(); 

    function move() { 
    ++pos; 
    if (pos > 100) { 
     pos = 0; 
    } 
    $("#theDiv").css("background-position", pos + "px"); 
    setTimeout(move, 250); 
    } 

}); 
+0

這工作正常,但是,當背景移動時,它曾經是一個很大的空白。是否有可能做到這一點,當完成滾動的背景的一部分時,它會返回到左邊? – Alex 2012-01-29 13:08:38

+0

'background-repeat:repeat-x;' – Sim 2012-01-29 13:09:58

+0

@Alex:請參閱Sim的評論; [信息](http://www.w3.org/TR/CSS2/colors.html#propdef-background-repeat)。 – 2012-01-29 13:17:01

0

你不能在後臺位置使用jQuery.animate,因爲:

所有動畫屬性都應該動畫爲單個數值。

background-position不是單個數值屬性。

因此,最好的辦法就是不要在這種情況下直接使用背景圖片。你可以重新做你的佈局,使圖像實際上是一個絕對定位<div>(你的背景圖像的大小)在另一個固定大小的<div>容器(position: relative; overflow: hidden;)。然後讓它「移動」 - 在絕對定位的<div>上動畫CSS left屬性。