【发布时间】:2016-01-29 23:51:23
【问题描述】:
所以我有这个在 Firefox 和 Chrome(最新版本)中运行良好的小 CSS 过渡。但是,它在 IE 10 中看起来像垃圾(无法正确呈现)。我想知道是否有一些 hack 让它像在其他浏览器中一样显示。
这里是pen on codepen 的链接(在 IE 10 中查看)。在 Chrome 或 Firefox 中运行良好。
我在这里包含了所有代码,因为我知道有些人讨厌它不在问题中。但在笔中都是可见的。以任何方式了解我如何解决这个问题都会很棒。
CSS:
#menu-icon {
border-radius: 0.2em;
display: block;
color: white;
font-size: 4em;
font-weight: 900;
width: 1.5em;
background: grey;
letter-spacing: -0.17em;
line-height: 0.4em;
position: absolute;
bottom: 8em;
left: 4em;
height: 1.4em;
text-align: center;
padding: 0 !important;
margin: 0 !important;
cursor: pointer;
}
#menu-icon span {
display: inline-block;
padding: 0px;
margin: 0px;
}
.menu-bar {
top: -0.4em;
position: relative;
width: 90%;
margin-left: 0%;
margin-right: 10%;
}
.menu .bar-left {
transition: transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
}
.menu .bar-right {
transition: transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
}
.arrow .bar-left {
height: 0.3em;
-webkit-transform: translate(0.34em, 0.05em) rotate(35deg);
-moz-transform: translate(0.34em, 0.05em) rotate(35deg);
transform: translate(0.34em, 0.05em) rotate(35deg);
transition: transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
transform-origin: center center;
-webkit-transform-origin: center center;
}
.arrow .bar-right {
height: 0.3em;
-webkit-transform: translate(-0.34em, 0.15em) rotate(-35deg);
-moz-transform: translate(-0.34em, 0.15em) rotate(-35deg);
transform: translate(-0.34em, 0.15em) rotate(-35deg);
transition: transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
transform-origin: center center;
-webkit-transform-origin: center center;
}
HTML:
<div id="menu-icon" >
<div class="menu-bar">
<span class="bar-left ">_</span>
<span class="bar-right ">_</span>
</div>
<div class="menu-bar">
<span class="bar-left ">_</span>
<span class="bar-right ">_</span>
</div>
<div class="menu-bar">
<span class="bar-left ">_</span>
<span class="bar-right ">_</span>
</div>
</div>
JS:
function init() {
var menu = document.getElementById("menu-icon");
if(menu.addEventListener) {
menu.addEventListener("click", function() {
if(menu.className=="arrow") {
menu.className = "menu";
} else {
menu.className = "arrow";
}
}, false);
} else if(menu.attachEvent) {
menu.attachEvent("onclick", function() {
if(menu.className=="arrow"){
menu.className = "menu";
}else{
menu.className = "arrow";
}
});
}
};
if(window.addEventListener) {
window.addEventListener("load", init, false);
} else if(window.attachEvent) {
window.attachEvent("onload", init);
} else {
document.addEventListener("load", init, false);
}
【问题讨论】:
-
我制作了另一支笔 (click) 并更正了供应商前缀属性的顺序并稍微清理了您的 css 规则。您能否转到 IE10,打开开发工具(按 F12)并检查您的菜单元素。如果我检查元素,动画看起来不错。奇怪。
-
@kleinfreund 嘿,谢谢,我在检查元素和定期查看时看起来仍然一样
-
@brendosthoughts 你为什么不用大写???你这个懒惰的人,我必须为你解决这个问题!
标签: html css css-transitions internet-explorer-10