2013-03-06 50 views
-1

我需要動畫一個相對定位的div,動畫從display:none;display:block;。我需要「縮放」它,從右下角開始到左上角。有沒有辦法做到這一點? (最好在jQuery,但任何工作是好的)jQuery中的角到角顯示動畫?

+4

如果我正確理解你的意圖,是將有可能...到目前爲止,您爲了達到這種特殊效果而嘗試過什麼? – sg3s 2013-03-06 15:14:49

+0

我嘗試過動畫元素的寬度和高度,但是這會導致動畫從左上角開始,而不是右下角。我有slideLeft和slideUp函數的各種變體,使用幾個div並同時爲每一個動畫,但它不會按照我想要的方式工作。 – user2140478 2013-03-06 15:41:57

回答

0
+0

這些鏈接不是我要找的,不是。他們不會允許我以我描述的方式製作元素。 – user2140478 2013-03-06 15:43:05

+0

不要試圖「猜測」答案,這不是澄清方式。 w3schools也是一個可怕的來源鏈接,最好使用jsfiddle自己構建一個演示。 – sg3s 2013-03-06 17:07:10

1

我不知道你想淡入或改變元素的大小。這聽起來像你想要把它從隱藏。

由於HTML佈局全部從頂部和左側完成,因此從右下角到左上角進行動畫製作是棘手的問題。

通過仔細地結合slideUpslideDown固定或you can get an element to show from the bottom up.位置是絕對的,但我還沒有聽說過的方式滑動從右到左,而無需使用一些very advanced jQuery with bleeding edge includes.

所以我提供這個解決方案:由於DIV你想顯示是相對於你的定位可能有某種包裝,或一個容易的地方。

使用一個包裝器,您可以將它設置爲隱藏的規則,然後將「隱藏」div放在其邊界之外。

Now with a simple jQuery animate您可以通過重新定位它的包裝

這裏的範圍內帶來 '秀' 是一個例子:

HTML:

<div class='wrapper'> 
    <div class='growIt'>Text for div</div> 
</div> 
<input type='button' id='showHide' value='Show/Hide'/> 

CSS:

.wrapper{ 
    background:blue; 
    position:relative; 
    width:200px; 
    height:200px; 
    overflow:hidden; 
} 
.growIt{ 
    background: red; 
    position:relative; 
    width:200px; 
    height:200px; 
    top:200px; 
    left:200px; 
    display:block; 
} 

jQuery:

$(function(){ 
    var hiding = true; 
    $('#showHide').click(function(){ 
     if(hiding == true){ 
      hiding = false; 
      $('.growIt').animate({top:'0px',left:'0px'},2000);  
     }else{ 
      hiding = true; 
      $('.growIt').animate({top:'200px',left:'200px'},2000);  
     } 
    }); 
}); 

當您單擊按鈕時,它將隱藏或顯示紅色的div。

如果您有動畫顯示從display:nonedisplay:block的要求,是因爲你需要它來推動其他表單元素的方式進行時,映入眼簾的,I would suggest adding another wrapper with position:relative and then making the wrapper slide 'down' from the bottom.

+0

你的解決方案是合理的,但我將「隱藏」var放在onload函數中,以免污染JavaScript中的全局範圍。 – sg3s 2013-03-06 17:10:44

+0

我不會說謊,但我仍然無法知道何時進行「關閉」。感謝編輯。 – 2013-03-06 17:14:32

+1

這在技術上不是閉包,[閱讀此問題](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work)。然而,您正在定義一個新的唯一範圍,在該範圍中,如果您使用var語句定義變量,則該變量將是唯一的。這個變量在這個範圍和任何子範圍中都是可用的(在這種情況下你傳遞的點擊功能)。 [這是一個很好的問題解釋範圍](http://stackoverflow.com/questions/500431/javascript-variable-scope)。 – sg3s 2013-03-06 17:20:34