jQuery UI 抖动效果从新行开始

Posted

技术标签:

【中文标题】jQuery UI 抖动效果从新行开始【英文标题】:jQuery UI shake effect starts on new line 【发布时间】:2011-07-25 21:49:51 【问题描述】:

在下面提供的 jsfiddle 链接上,我有一个带有文本的段落,然后是一个输入框。我使用 jQuery UI 来摇动输入框,但奇怪的是摇动效果从文本下方开始。

http://jsfiddle.net/VQj2Z/6/

【问题讨论】:

没有</input>这样的标签。 【参考方案1】:

如果您在效果期间检查源代码,您会看到输入被<div class="ui-effects-wrapper"> 包裹,这就是它折叠到下一行的原因。我不熟悉 mootools,但快速解决方法是将 display:inline 分配给该 div:

<style type="text/css">
    .ui-effects-wrapper 
        display:inline;
    
</style>

【讨论】:

为什么需要熟悉 Mootools? 因为这就是“框架”栏在原始链接中所说的。无论如何,您对浮动 div 的建议更有意义(y)。 我想在没有 hack 的情况下做到这一点。不过,谢谢。 @ThA-B:哦,我明白了...... Mootools 只是 JSFiddle 的默认设置,尽管它没有被使用。他在 html 部分手动包含了 jQuery 和 jQuery UI。【参考方案2】:

由于没有足够的空间(它被动态包裹在一个 div 中)让 input 在“内联”时晃动,它会换行到下一行并在完成后返回。

将文本和input 放入块级元素(并排浮动div's),一切都保持原位。

http://jsfiddle.net/VQj2Z/10/

还要注意我删除了&lt;/input&gt;,因为没有这样的东西。 &lt;input 只是用 /&gt; 关闭

【讨论】:

这涉及到太多改变我以前的工作,还有其他建议吗? @Randomblue: 问题很简单...... jQuery UI 在对象摇晃之前动态地将对象包含在div 中。 div 不适合“内联”并且将始终换行。我看不到你以前的工作,但我不知道你在不改变整体的情况下还能如何解决这个问题。【参考方案3】:

对于我的用例,我只是将这些属性添加到包含 div 的类中:

overflow:    visible;
white-space: nowrap;

我认为导致空白环绕的情况可能只有几个像素,那么为什么不让水平溢出稍微过去然后强制它不环绕呢?对于我的用例,这似乎是一种微创方法,因为无论如何文本都应该只在一行上。

【讨论】:

以上是关于jQuery UI 抖动效果从新行开始的主要内容,如果未能解决你的问题,请参考以下文章

FairyGUI & Unity使用动效功能实现血条UI扣血与加血的缓动效果

高薪设计师必修课 AE移动UI动效设计从入门到实战

Unity UI的抖动效果怎么实现的?

Mac - 实现删除按钮的抖动效果

动效设计Principle:动画介绍

jquery 怎么做简单抖动效果