Jquery淡入淡出/覆盖覆盖输入框:输入字段位于叠加层顶部,直到动画完成

时间:2012-03-21 15:10:22

标签: javascript jquery

我有一个很大的叠加层,在提交后会在窗体的顶部逐渐消失,使整个窗体的效果“变灰”,并且文本框会被锁定(至少表面上看)。但是,输入字段似乎位于叠加层之上,直到动画结束,然后立即弹出叠加层。因此,不是文本框逐渐变灰(就像它们周围的区域一样),它们的对比度会在动画结束时立即发生变化(在10秒内叠加渐变测试)。

这是一个已知的错误吗? z级别设置正确,所以我不确定可能导致问题的原因......

编辑:我不认为我可以在不粘贴整个代码的情况下给出一个例子,但是一个非常奇怪的观察是,如果我为所有输入框禁用jq_watermark插件,其中一个是固定的并且行为正常但是休息仍然有问题。我已经删除了所有的css样式,但仍然只有一个以这种方式被窃听。很奇怪。

1 个答案:

答案 0 :(得分:1)

听起来有点像stacking context问题。在元素上设置positionopacity < 1会将其置于新的堆叠上下文中。这意味着虽然它正在衰落,但它可能具有不同的堆叠上下文,因为opacity小于1,或者因为jquery在运行动画时更改position,然后在完成时将其更改回来。虽然没有亲眼看到它,但很难说肯定。

要尝试的事情:

  • 更改叠加层与源代码中表单元素的顺序。
  • 使用div
  • 将叠加层包裹在position:relative
  • 淡化为0.9而非完全淡入淡出,以便查看由opacity < 1引起的堆叠上下文问题,或者是由jquery设置position引起的。
  • 确保使用z-index定位您使用position的所有元素。 z-index仅适用于设置了职位的元素。