2010-12-17 74 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