2011-06-15 133 views
2

我試圖建立一個簡單的水平手風琴,最終將包含更復雜的數據(iframes)...問題是我想每個手風琴選項卡的大小都是特定於它的數據包含,所以我試圖編輯已經在那裏(一些標籤比其他標籤更大)。當用戶將鼠標懸停在任何選項卡上時,我想將該選項卡擴展到50%(不管其以前的大小)。所有這一切工作正常,但問題是我不知道如何返回到鼠標出局後的標籤原始寬度。現在我的面板縮小到10%來說明問題。如果你在頁面中循環,然後重新加載,你會明白我的意思。有任何想法嗎?水平手風琴的Jquery選擇器

http://www.brianvargo.com/test.html

回答

0

您可以將原始寬度保存在某處。這是一種方式(你的代碼):

$(document).ready(function(){ 
    $("ul li").mouseover(function(){ 
     if (this.originalWidth == undefined) this.originalWidth = $(this).width(); 
     $(this).stop().animate({width:'50%'},{queue:false, duration:500,}) 
    }); 

    $("ul li").mouseout(function(){ 
     $(this).stop().animate({width: this.originalWidth},{queue:false, duration:600}) 
    }); 
}); 

未經檢驗的,你可能會選擇不同的方式來保存它,但總的想法是存在的。

+0

好的,測試:[jsfiddle](http://jsfiddle.net/QaUsL/)。這是你以後的事嗎? – 2011-06-16 00:24:10

+0

完美!謝謝。我無法將原始寬度的變量從一個函數傳遞給另一個函數,但是這種方法非常完美!只有其他問題,我試圖找出爲什麼最後幾個塊繼續垂直跳躍......任何想法? – Brian 2011-06-16 00:29:14

+0

不是很確定,但是當你知道它的時候,我很樂意聽到它。乾杯。 – 2011-06-16 00:41:11

0

什麼類似的情況工作對我來說你的,是建立與所述元件的負載原始大小的屬性,然後檢索供以後使用。