2013-05-25 30 views
0

我試圖擴大一個div上懸停一個特定的大小,我想股利回到原來的尺寸上懸停時,使用動畫功能。事業部:擴大和調整回原來的懸停了

有沒有什麼辦法可以計算div在動畫中的原始大小?

+2

請發佈我們的代碼 – rab

+0

如果將其放大到屏幕大小,則無法將其懸停。 –

回答

2

你必須保存原始狀態外/你的事件處理程序之前:

var origHeight = $("div").outerHeight(true); 

$("div").hover(function(e){ 
    $(this).stop().animate({ 
     height: e.type === "mouseenter" ? $(window).height() : origHeight 
    }); 
}); 

http://jsfiddle.net/b5HUU/2/

順便說一句,這不是一個好主意,這樣做懸停......因爲沒有空間讓鼠標離開(整個瀏覽器除外)。

更新

所以最好使用點擊事件:

var origHeight = $("div").outerHeight(true), 
    clickState = false; 

$("div").click(function(e){ 
    clickState = !clickState; 
    $(this).stop().animate({ 
     height: clickState ? $(window).height() : origHeight 
    }); 
}); 

http://jsfiddle.net/b5HUU/4/

+0

當我們mousover div多次..它將持續動畫 – rab

+0

@rab您可以在動畫處理程序前添加'.stop()'。我已更新我的示例。 – yckart

+0

謝謝! 也沒有任何辦法讓我可以從懸停改變它點擊(點擊股利和遠離它)? – stark

0

需要stop動畫上mouseentermouseleave

var w = $('#an').width(), 
    n = w + 100 ; // particular size 

function widthAnimate(width){ 
    return function(){ 
     $('#an').stop().animate({ 
      width : width +'px', 
     }); 
    } 
}; 

$('#an').mouseenter(widthAnimate(n)) 
     .mouseleave(widthAnimate(w)); 

jsfiddle中加入了此項

+0

'jQuery.fn.stop'是在任何情況下他的問題的一部分;) – yckart

+0

感謝! 也沒有任何辦法讓我可以從懸停改變它點擊(點擊股利和遠離它)? – stark

+0

@stark嘗試一些代碼..如果你有代碼問題,我們會幫助你 – rab