【发布时间】:2013-05-22 05:43:04
【问题描述】:
我使用 JQuery UI 制作了一个按钮,在页面上隐藏一个 div,并显示另一个。
我有一个包装 div,里面有 2 个可见的 div 和 1 个隐藏的 div。第一个可见的 div 永远不会移动。 div 2 被隐藏,当我按下按钮时 div3 会出现。 当我按下按钮时,div 2 和 div 3 “退出”/退出屏幕。在 Chrome 中的这个动画中,他们的位置被弄乱了。
在 IE 或 Firefox 中不会出现此问题。
我认为问题可能是:
-在浮动上:在 div2 和 div3 中,或者
-display:none 在 div3 上,因为损坏的动画似乎发生在 div3 所在的位置,如果它可见的话。
我需要两个 div 都在右边,所以我需要保持 float:right,如果可能的话。
这是一个代码示例和 jsfiddle 的链接:(请使用 Chrome)
#wrapper {
width: 300px;
height: 150px;
border: 1px solid black;
}
#box1 {
width: 150px;
height: 100px;
border: 1px solid blue;
display: inline-block;
}
#box2 {
width: 120px;
height: 120px;
border: 1px solid yellow;
float: right;
display: inline-block;
}
#box3 {
width: 120px;
height: 120px;
border: 1px solid red;
float: right;
display: inline-block;
display:none;
}
提前感谢您花时间阅读所有这些内容!
【问题讨论】:
-
这是因为你的 inline-block 属性。如果你从每个 box1、box2 和 box 中去掉 inline-block 属性。当您在这样做之后运行 JSFiddle 时,在单击按钮之前,您会注意到您的初始黄色 div 与它下降到然后平移的确切位置对齐。出于某种原因,chrome/jqueryui 认为您的 div 是在这里呈现的,但它出现得更多。因此,当您触发隐藏效果时,它会移动到该位置,然后向右下降,因为 jquery 告诉它向右下降。
标签: jquery css jquery-ui show-hide jquery-effects