【发布时间】:2014-05-17 12:36:48
【问题描述】:
我刚刚制作了一个网页,其中包含具有 fixed 背景定位的元素,并且在我将 css 动画 应用于(完全不同且不相关的)元素之前,它的效果很好。
我尝试删除/重新应用动画以确保确实是问题所在,果然,当我添加动画时,背景定位(页面上的 每个 元素)变为静态,并在我删除动画的那一刻再次工作。
这正常吗?
最终,我正在寻找一种解决方案,它允许:
- 相对定位,
- 浮动元素(或至少类似包装器的子元素)
- 用于固定背景位置
- 在使用 CSS3 动画的网页中,
- 与 Chrome 兼容。
下面是动画:
这里没有它们:
我只在 Chrome 中测试过。
更新:如一个答案所示,为元素提供固定背景位置 static 定位会导致元素在 CSS3 动画时保留其固定背景的行为以牺牲所需的相对元素定位为代价在页面上处于活动状态。
人们会认为这可以通过将相关元素包装在相对父元素中来解决,但事实并非如此。
如果 CSS3 动画(或过渡)在页面上活动 任何地方,那么即使是相对定位元素的孙子元素也会失去其固定的背景定位.
这是与 静态定位:
这是静态定位带有相对包装器,浮动:
这是上面的没有激活 CSS3 动画:
如果我从包装器中删除 float:left,我刚刚发现了一些东西:
这让它工作得很好!
【问题讨论】:
-
您可以将您的代码添加到您的帖子中并提供一个 JSFiddle 吗?
-
这是一个非常大的网页。我将构建一个测试场景的小提琴
-
你可以有礼貌地支持firefox ...
-
啊火狐?我正在使用 chrome 进行开发。对于那个很抱歉! @aloisdg
-
@AndyM 为了加快初始结果的速度,我支持 chrome,然后在项目完成后,我通过 Nettuts 的 Prefixr add 运行 css,这使得一切都非常跨浏览器。跨度>
标签: css google-chrome css-position css-animations background-position