我使用CSS过渡从右到左动画鼠标悬停的容器.这适用于除Internet Explorer之外的所有浏览器.原因是我在CSS left属性中使用(并且需要使用)calc().
我在这里创建了一个现场演示:现场演示
CSS看起来像这样:
div {
background: red;
width: 100px;
height: 100px;
position: absolute;
top: 100px;
left: 90%;
-webkit-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
-moz-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
-o-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
}
div.translate-less {
left: calc(90% - 4rem)
}
Run Code Online (Sandbox Code Playgroud)
我在使用jQuery鼠标悬停时添加了.translate-less类:
$(document)
.on( 'mouseenter', 'div', function(){
$(this).addClass('translate-less')
})
.on( 'mouseleave', 'div', function(){
$('div').removeClass('translate-less');
})
Run Code Online (Sandbox Code Playgroud)
现在我想在Internet Explorer中顺利过渡.为此,我甚至会抛弃这些特定浏览器的calc()并添加一个规则left: 85%;.但是IE 10和11已经放弃了对条件评论的支持,似乎没有办法专门针对这些浏览器.IE 10可以使用-ms-high-contrast-hack进行攻击 …