如何将CSS3过渡应用于除background-position之外的所有属性?

Din*_*ine 98 css3 css-transitions

我想将CSS转换应用于除background-position之外的所有属性.我试着这样做:

.csstransitions a {
    -webkit-transition: all 0.3s ease;                  
    -moz-transition: all 0.3s ease;                 
    -o-transition: all 0.3s ease;   
    -ms-transition: all 0.3s ease;          
    transition: all 0.3s ease;
}

.csstransitions a {
    -webkit-transition: background-position 0s ease 0s;                 
    -moz-transition: background-position 0s ease 0s;                
    -o-transition: background-position 0s ease 0s;  
    -ms-transition: background-position 0s ease 0s;         
    transition: background-position 0s ease 0s;
}
Run Code Online (Sandbox Code Playgroud)

首先,我将所有属性设置为转换,然后我尝试仅覆盖background-position属性的转换.

然而,这似乎也重置了所有其他属性 - 所以基本上没有任何过渡似乎再发生.

有没有办法在不列出所有属性的情况下执行此操作?

Fel*_*ann 131

这是一个适用于Firefox的解决方案:

transition: all 0.3s ease, background-position 1ms;
Run Code Online (Sandbox Code Playgroud)

我做了一个小演示:http://jsfiddle.net/aWzwh/

  • 时间单位必须有一个单位.所以0不起作用,就像4不起作用,但4s将工作正如0将工作. (3认同)
  • 出于某种原因,"1ms"对我不起作用,但是"0"没有. (2认同)
  • @Flimm你试过`0ms`?应该在Chrome中运行. (2认同)
  • 我已经搜索了这么久了,谢谢你,@ FelixEdelmann !! (2认同)

ald*_*ena 17

希望不要迟到.它只使用一条线完成!

-webkit-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
-moz-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
-o-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0; 
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome.您必须使用逗号分隔CSS属性.

这是一个工作示例:http://jsfiddle.net/H2jet/

  • 我在Chrome上尝试这个,它似乎对我不起作用.无论如何,`all`过渡属性似乎都会覆盖所有其他属性. (6认同)
  • 有趣.我想我没有用其他属性测试它.当我尝试`color 0`时它起作用了,但肯定不能用`background-position 0`.甚至`背景0'也没有给我带来任何结果... [这里是一个jsFiddle](http://jsfiddle.net/x7zHW/)我从Gaming.SE菜单中操纵了.说实话,我最初甚至只测试过`background-position`,因为这就是问题的具体提及,也是我试图改变自己的问题. (2认同)
  • 它曾经为我的chrome工作.它仍然在IE11中工作,但截至本周,所有属性现在都覆盖了线路上的任何内容. (2认同)

小智 10

您可以尝试使用标准 W3C 方式:

.transition { transition: all 0.2s, top 0s, left 0s, width 0s, height 0s; }
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/H2jet/60/