2015-07-11 80 views
0

只是一個簡短的問題,可能是一些語法錯誤,但我似乎無法找到它。我有一個函數使用一個id來動畫div的高度和寬度。我也試圖fadeIn()使用$(this).find('p')的子段落。這可能嗎?我環顧四周,嘗試了不同的語法,如children()。以下是有關的代碼:jquery fadein子問題

[JS]

$('#menu_item_1').hover(function() { 
    $(this).filter(':not(:animated)').animate({ 
     width: "300px", 
     height: "255px", 
     marginTop: "-100px", 
     marginLeft: "-100px" 
    }); 

    $(this).find('p').fadeIn(); 

}, function() { 
    $(this).animate({ 
     width: "200px", 
     height: "155px", 
     marginTop: "0", 
     marginLeft: "0" 
    }); 
}); 

[HTML]

<div class="menuItem" id="menu_item_1"> 
     <h5>Home</h5> 
     <p>Shows this page</p> 
</div> 

此外,的jsfiddle證明問題:https://jsfiddle.net/w0uu5t7b/

回答

2

這裏是demo

刪除opacity:0並將其設爲display:none

$(this).find('p').fadeIn();是指這個懸停功能,而不是jQuery。

所以它更好地存儲jQuery參考爲var that = this並將其用作懸停函數中的閉包。

因此,在鼠標輸入你做$(that).find('p').fadeIn();和鼠標離開你做$(that).find('p').fadeIn();儘可能簡單,因爲它可以得到。

P.S閱讀關於JavaScript關閉的更多信息:P

+0

哇。看,我知道這很簡單。我會解釋;我之前嘗試使用不透明度動畫,但認爲在段落中淡入淡出可能更容易。但我沒有改變不透明度。非常愚蠢我想,但謝謝你澄清。 – YSbakker

+0

太棒了!請接受答案,因爲您的查詢得到了答案;) – Ajey

+0

哈哈有一個等待12分鐘的時間,這已經快結束了。 – YSbakker