Css 过渡无效
Css transition not working
我有一个应该发生按钮点击转换的场景。
这些是应用的转换。在 chrome 浏览器中,它运行良好,但在 IE11 中尝试时,转换没有被应用。
我已经申请 CSS 如下:
div{
width:100px;
height:100px;
background:red;
transition-property: right, left;
transition-duration: 2s;
-webkit-transition-property: right, left; /* Safari */
-webkit-transition-duration: 2s; /* Safari */
-ms-transition-property: right, left; /* Safari */
-ms-transition-duration: 2s; /* Safari */
position:absolute;
right:calc(100% - 100px);
}
div:hover{
right:0px;
}
<div></div>
如有任何帮助,我们将不胜感激。
DEMO
根据兼容性 table 你不需要使用前缀 -ms-
.
Chrome: no prefix for 26.0 for 4.0 use -webkit-
IE: no prefix for 10.0
Mozilla: no prefix for 16.0 for 4.0 use -moz-
Safari: no prefix for 6.1 for 3.1 use -webkit-
Opera 12.1 for 10.5 use -o-
这是因为您使用了 calc()(参见 Known issues
标签):
IE11 does not support transitioning values set with calc()
这个例子有效:
div {
width: 100px;
height: 100px;
background: red;
-webkit-transition-property: right, left;
-webkit-transition-duration: 2s;
-ms-transition-property: right, left;
-ms-transition-duration: 2s;
transition-property: right, left;
transition-duration: 2s;
position: absolute;
right: 80%;
}
div:hover {
right: 0;
}
<div></div>
如另一个答案中所述,如果使用 calc
.
设置一个或两个值,则 IE11 在将 transition
应用于 属性 时会出现问题
一种解决方法是使用 transform
设置计算的第二个值,但是,结果可能与您想要的动画不完全匹配。注意这里translatex
函数中使用的百分比是相对于元素的宽度。
div{
background:red;
height:100px;
width:100px;
position:absolute;
right:100%;
transform:translatex(100%);
transition-duration:2s;
transition-property:right,transform;
}
div:hover{
right:0;
transform:translatex(0);
}
<div></div>
我有一个应该发生按钮点击转换的场景。
这些是应用的转换。在 chrome 浏览器中,它运行良好,但在 IE11 中尝试时,转换没有被应用。
我已经申请 CSS 如下:
div{
width:100px;
height:100px;
background:red;
transition-property: right, left;
transition-duration: 2s;
-webkit-transition-property: right, left; /* Safari */
-webkit-transition-duration: 2s; /* Safari */
-ms-transition-property: right, left; /* Safari */
-ms-transition-duration: 2s; /* Safari */
position:absolute;
right:calc(100% - 100px);
}
div:hover{
right:0px;
}
<div></div>
如有任何帮助,我们将不胜感激。 DEMO
根据兼容性 table 你不需要使用前缀 -ms-
.
Chrome: no prefix for 26.0 for 4.0 use
-webkit-
IE: no prefix for 10.0
Mozilla: no prefix for 16.0 for 4.0 use
-moz-
Safari: no prefix for 6.1 for 3.1 use
-webkit-
Opera 12.1 for 10.5 use
-o-
这是因为您使用了 calc()(参见 Known issues
标签):
IE11 does not support transitioning values set with calc()
这个例子有效:
div {
width: 100px;
height: 100px;
background: red;
-webkit-transition-property: right, left;
-webkit-transition-duration: 2s;
-ms-transition-property: right, left;
-ms-transition-duration: 2s;
transition-property: right, left;
transition-duration: 2s;
position: absolute;
right: 80%;
}
div:hover {
right: 0;
}
<div></div>
如另一个答案中所述,如果使用 calc
.
transition
应用于 属性 时会出现问题
一种解决方法是使用 transform
设置计算的第二个值,但是,结果可能与您想要的动画不完全匹配。注意这里translatex
函数中使用的百分比是相对于元素的宽度。
div{
background:red;
height:100px;
width:100px;
position:absolute;
right:100%;
transform:translatex(100%);
transition-duration:2s;
transition-property:right,transform;
}
div:hover{
right:0;
transform:translatex(0);
}
<div></div>