CSS转换在Edge中不起作用

问题描述 投票:9回答:3

我遇到了以下问题。

this site that I created,我有一个位于页面底部的画廊。如果我将鼠标悬停在拇指上,它们会疯狂地飞来飞去,这不是我想要的。它就像其他浏览器的魅力一样;只有Microsoft Edge受到影响。

有人可以帮助我让图像按预期运行吗?

CSS看起来像这样:

.node-gallery {
   float: left;
   width: 150px;
   height: 150px;
   position: relative;
   margin: 0 60px 50px 0;
}

.node-gallery img {
   position: absolute;
   bottom: 0px;
}

.node-gallery .image1 {
   left: 0px;
   z-index: 3;
   -webkit-transition: all 0.2s ease;
   -moz-transition: all 0.2s ease;
   -o-transition: all 0.2s ease
}

.node-gallery .image2 {
   left: 7px;
   height: 148px;
   z-index: 2;
   -webkit-transition: all 0.2s ease;
   -moz-transition: all 0.2s ease;
   -o-transition: all 0.2s ease
}

.node-gallery .image3 {
   left: 14px;
   height: 145px;
   z-index: 1;
   -webkit-transition: all 0.2s ease;
   -moz-transition: all 0.2s ease;
   -o-transition: all 0.2s ease
}

.image1, .image2, .image3 {
   border: 5px solid #F3F3F3!important;
   box-shadow: 1px 1px 2px #666;
   -webkit-shadow: 1px 1px 2px #666;
   -webkit-transform: rotate(0deg) translate(0px);
}

.node-gallery:hover .image1 {
   z-index: 6;
   -ms-transform: rotate(-5deg) translate(-20px, -2px);
   -ms-transform-origin: center bottom;
   -webkit-transform: rotate(-5deg) translate(-20px, 2px);
   -webkit-transform-origin: center bottom;
   -moz-transform: rotate(-5deg) translate(-20px, -2px);
   -moz-transform-origin: center bottom;
   -o-transform: rotate(-5deg) translate(-20px, -2px);
   -o-transform-origin: center bottom;
}

.node-gallery:hover .image2 {
   z-index: 5;
   -ms-transform: rotate(-2deg) translate(0px, 2px);
   -ms-transform-origin: center bottom;
   -webkit-transform: rotate(-2deg) translate(0px, -2px);
   -webkit-transform-origin: center bottom;
   -moz-transform: rotate(-2deg) translate(0px, 2px);
   -moz-transform-origin: center bottom;
   -o-transform: rotate(-2deg) translate(0px, 2px);
   -o-transform-origin: center bottom;
}

.node-gallery:hover .image3 {
   z-index: 4;
   -ms-transform: rotate(5deg) translate(20px, -2px);
   -ms-transform-origin: center bottom;
   -webkit-transform: rotate(5deg) translate(20px, 2px);
   -webkit-transform-origin: center bottom;
   -moz-transform: rotate(5deg) translate(20px, -2px);
   -moz-transform-origin: center bottom;
   -o-transform: rotate(5deg) translate(20px, -2px);
   -o-transform-origin: center bottom;
}
html css css-transforms microsoft-edge
3个回答
10
投票

几个月后,我相信我刚遇到同样的错误,并找到了解决方案。似乎Microsoft Edge 13在解释transform-origin的一些正常可接受的值时遇到问题。特别是对我来说,它忽略了值right center,但与top left工作正常,让我相信center值(我在你的示例代码中看到)可能是问题。

我的修复是使用百分比值,所以transform-origin: center bottom将成为transform-origin: 50% 100%。希望这可以帮助遇到此问题的任何人。

请注意,尽管顶级投票的答案暗示了ms-前缀,但这个问题是关于最近的MS Edge浏览器,并且自Internet Explorer 9以来,对于转换属性(每个caniuse.com),并不需要该前缀。


3
投票

埃德。另一个用户:此答案不适用于Microsoft Edge浏览器。

您需要编写标准的transitiontransform属性,然后编写用于Microsoft Internet Explorer的-ms前缀:

 .selector {
     -webkit-transform: scale(); /* android, safari, chrome */
     -moz-transform: scale(); /* old firefox */
     -o-transform: scale(); /* old opera */
     -ms-transform: scale(); /* old IE */
     transform: scale(); /*standard */
  }

同样在transition财产。您的解决方案是编写标准。


-4
投票

试试这个,

使用fancybox API.SO的图库图像可以选择更改fancybox.js中的动画类型。

参考:http://fancybox.net/api

你需要去fancybox js文件,找到'transition In,transition Out'更改为转换类型的效果。可以设置为“弹性”,“淡入淡出”或“无”。

根据Windows所有浏览器都没问题。

© www.soinside.com 2019 - 2024. All rights reserved.