1

我得到了以下代码:Link,正如您在输入中写入的内容所看到的那样,文本区域会显示出来,问题是在效果完成之前,提交输入和文本区域之间会产生一个小间隙,有趣的是那:

当我替换这一行时:

qCont.show("blind", {to: { display: "block"}}, 1500);

有了这条线:

qCont.css("display", "block");

问题解决了,但我确实想要这个效果,有没有办法修复它并使用“显示”效果,谢谢大家,祝你有美好的一天。

4

2 回答 2

1

好的。textarea 的底部边距为 5px。

这是一个 hack,但我通过添加以下 css 解决了这个问题:

#qContent
{
  margin-bottom: -5px !important;
}

这是小提琴:http: //jsfiddle.net/CWP8E/3/

作为替代方案,您可以添加一个在显示效果动画之后执行的匿名函数。这也修复了外观(我更喜欢它):

qTitle.one("keydown" ,function(){
        qCont.show("blind", {to: { display: "block"}}, 1500, function() {
            $(this).css("display","block");
        });
    });

这是小提琴:http: //jsfiddle.net/CWP8E/4/

我仍在研究为什么要插入 5px 边距(jQquery 中的东西?),但上面的黑客修复了视觉效果。我确实理解这是一种黑客行为,但有时这会让我们继续前进。

单步执行代码时,我注意到 jQuery 动画以具有display: inline-block值的 qTitle 结尾,而不是display: block预期的那样。在 Google 上快速搜索会发现第二种解决方案(使用匿名完成功能)值得推荐。

这是描述它的 StackOverflow 文章:

jQuery fadeIn() 结果显示:内联元素的块

于 2013-05-13T20:12:44.503 回答
0

尝试

qCont.show("blind", {direction:"vertical"}, 1500);
于 2013-05-13T19:42:17.443 回答