2010-12-17 92 views
4

我試圖創建自定義水平手風琴風格展示。在實際功能方面,我有框架(可以在這裏看到):jQuery:自定義水平手風琴寬度問題

http://www.jsfiddle.net/adrianjacob/UdUus/

但是我的主要錯誤熊(和客戶端)是,如果你看一下右手邊,有隨着寬度向上和向下動畫,總是輕微移動/閃爍。

理想情況下,我希望它看起來平滑,所以只有開幕式/閉幕式有移動。

任何意見將不勝感激。

A.

+0

嗯......這是一個棘手的問題。必須與舍入錯誤有關。我一直在將寬度更改爲%時間,但這並不好。我會堅持下去,看看我能不能拿出一些東西。 – 2010-12-17 09:33:49

+0

也一直在嘗試絕對定位,但仍然無法實現它的工作。這很令人沮喪。 – 2010-12-17 10:19:26

+0

非常令人沮喪:) – Adi 2010-12-17 10:26:22

回答

1

使用animate功能的step(它不是有據可查)......我已經更新了demo

var panels = $('#promo li'); 

panels.hoverIntent(

function() { 
    if (!$(this).is('.expanded') && !panels.is(':animated')) { 
     $(this).animate({ 
      width: 200 
     }, { 
      // width is the calculated width, ani is the animation object 
      step: function(width, ani) { 
       var w = Math.floor(width); 
       // use 250 so we end up with 50 as the reduced size 
       $('.expanded').css('width', (250 - w) + 'px'); 
       $(ani.elem).css('width', (200 - w) + 'px'); 
      }, 
      duration: 500, 
      complete: function() { 
       panels.removeClass('expanded'); 
       $(this).addClass('expanded'); 
      } 
     }); 
    } 
}, function() {}); 

類似的方法在Kwicks使用插入。

+0

+1 Chrome瀏覽器仍然有些抖動,但幾乎不知不覺! – 2010-12-17 22:59:55

+0

Fudgey ...有沒有辦法太編輯(http://www.jsfiddle.net/Mottie/UdUus/117/)所以所有的面板都以相同的寬度開始,然後順利地展開/收縮? – Adi 2011-02-01 15:55:49

+0

這樣做有點複雜,因爲您必須計算並保存均勻擴展和縮小的面板大小,你現在要求的是Kwicks插件的功能,所以我建議你嘗試一下嗎? – Mottie 2011-02-03 14:50:53

0

你可以嘗試this plugin可能已經想通了這個bug。提供的例子太實際了。

你玩過jQuery UI緩動嗎?

+0

如果您調整屏幕大小,那麼插件效果不佳: – Mottie 2010-12-17 14:40:39