2011-04-14 49 views
6

使用jQuery UI的抖动效果会导致元素运行到换行符,摇动,然后运行。我尝试改变位置CSS等,但没有黑客攻击它,我觉得有一个正常的,优雅的解决方案。JQuery摇动用户界面问题

http://jsfiddle.net/ShhER/6/

我想说这是一个错误,但它可能不是...任何想法?

+0

它在小提琴中工作得很好。你不能改变X轴上晃动的距离吗?我没有使用过这种效果,不记得文档 – 2011-04-14 01:31:07

+0

不,它需要一个参数,但无论如何,它总是向左走,然后摇动该参数的距离。这里是另一个例子:http://jsfiddle.net/ShhER/6/。只需点击刷新,你就会注意到摇晃问题。 – delphi 2011-04-14 02:10:48

回答

2

正在动画的元素应该是块级别的,或者明确地有display: block

我设置了display: block,然后相应地调整了标签的CSS。它运行良好。

jsFiddle

+0

这将工作得很好,但现在我不能有两个元素相邻(我在我的主代码中)。 http://jsfiddle.net/ShhER/6/(我删除了显示:块在这里) – delphi 2011-04-14 02:09:03

+3

@delphi [浮动他们](http://jsfiddle.net/alexdickson/ShhER/7/)。 – alex 2011-04-14 02:22:08

+0

很好,谢谢! – delphi 2011-04-16 00:59:24

0

我只是调试了jQuery UI Shake效果,发现插件为将使用效果的元素创建一个包装。这个包装器是为了将jQuery动画函数与Shake给定属性一起使用所必需的。

我通过向包装添加100%来解决这个问题。在我的情况下,我有这样的事情:

<div class="errorBox nameBox" style="position: absolute; top: 352px; left: 948.5px; display: block; width: 100%"> 
    <div class="errorArrow"></div> 
    <div class="errorDescription">Type your name</div> 
</div> 

问候。

0

我发现jQuery添加包装类与类ui-effects-wrapper元素所以添加这个CSS解决了我的问题。

.ui-effects-wrapper { 
     display:inline; 
    }