chrome和safari中的图像缩放错误

时间:2015-02-25 10:15:21

标签: jquery css google-chrome safari transform

在我的网页上,我有一个带有border-radius的div:50%;在div中我添加了一个图像,当悬停在该图像上时,它会缩放到1.2。这个东西在mozilla中正常工作,但是当我来到chrome和safari时,图像通过溢出而不是圆形div(border-radius:50%)来缩放,为什么会发生这种情况。有什么方法可以解决这个问题吗?

HTML

<div class="work-round">
  <img src="images/latestwork_01.png">
</div>

CSS

.work-round {
    border: 5px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    margin: 10px auto;
    max-height: 250px;
    overflow: hidden;
    width: 250px;
}

.work-round img {
    background: none repeat scroll 0 0 #fff;
    height: 100%;
    min-height: 240px;
    transition: all 0.5s ease-out 0s;
    width: 350px;
}
.work-round img:hover {
    opacity: 0.9;
    transform: scale(1.2);
}

fiddled here

悬停enter image description here

上的屏幕截图

3 个答案:

答案 0 :(得分:2)

nickspiel在此发现的解决方案:css3 border radius animation transition in safari not working

请参阅: https://jsfiddle.net/KyleKatarn/s0bpp0ho/6/

.work-round {
    -webkit-mask-image: -webkit-radial-gradient(white, black);

要获得Safari的部分支持: https://jsfiddle.net/KyleKatarn/s0bpp0ho/7/

答案 1 :(得分:1)

这是一个解决方案(在Chrome上测试)

*{

    background:red;
}
.work-round {
    border: 5px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    margin: 10px auto;
    max-height:250px;
    overflow:hidden;
    width:250px;
    transition: all 2s linear;    
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black);


}

.work-round img {
        background: none repeat scroll 0 0 #fff;
    height: 100%;
    min-height: 240px;
    transition: all 0.5s ease-out 0s;
    width: 350px;

    -webkit-border-radius: 500px;width:100%;height:100%;

}
.work-round img:hover {
    opacity: 0.9;
    -webkit-transform:scale(1.2);
}

答案 2 :(得分:1)

我修改了您的代码,查看结果here

它带有刻度和溢出的镀铬BUG。

对于具有(overflow:hidden)的容器 添加(在您的情况下是.work-round)

position:relative;
z-index:1;