javascript - 为什么 jQuery show() 在取消隐藏 div 时会导致短暂但明显的抖动?

标签 javascript jquery html css

我试图在用户第一次单击提交按钮时在表单上显示隐藏的 div。虽然我使用 jQuery 进行此工作,但如果我为 show() 过渡期设置 0 以外的任何值,正在显示的 div 将“抽搐”到一边。

这是使用 Bootstrap 并在 Safari 上测试的。

我认为问题可能出在表单上的 margin: 0 auto (就好像 jQuery 显示元素后边距对齐一样)。

Here's the JSFiddle这说明了这个问题。

最佳答案

这是因为 jQuery 的动画包装器。 jQuery 将要进行动画处理的元素放入另一个用于动画的 div 帮助器中。

这个包装器(几乎)每次都会弄乱动画元素的边距。

我更改了此规则:

#signup-form .form-group {
    margin: 10px 0 10px 0;
}

对此:

#signup-form .form-group {
    margin: 0 0 10px 0;
}

删除上边距。

jQuery 动画在元素周围添加了一个包装器,该包装器在动画进行时会消除顶部边距。一旦动画结束,jQuery 就会展开元素,并应用边距,从而创建跳转。

这是一个 updated JSFiddle demo

关于javascript - 为什么 jQuery show() 在取消隐藏 div 时会导致短暂但明显的抖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071719/

相关文章:

html - 登录后 Odoo 8 界面未全高显示

javascript - removeAttr 删除在 IE 中不起作用的标题

javascript - polymer 纸波纹在给定的 x,y 坐标处以编程方式触发 downAction

javascript - 在打开另一个之前关闭所有 Accordion 选项卡(一次只打开一个)

javascript - 使用 javascript 使字段不可编辑

javascript - 通过拖放重新排序数组

javascript - 如何根据 3D 平面对象上给定的 UV 坐标获取 3D 点坐标 - Threejs

javascript - Mediarecorder.start() 不适用于 Firefox for Android

jquery .text 作为条件

javascript - 从通过 jquery 显示/添加的输入中保存值