gpt4 book ai didi

css - 转换缩放属性在 Chrome 和 Safari 中不起作用

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:58 26 4
gpt4 key购买 nike

.tricky {
width: 200px;
height: 200px;
border-radius: 50%;
border: 0px solid;
background: #2373bd;
display: inline-block;
position: relative;
overflow: hidden;
}

.tricky_image {
width: 100%;
height: 100%;
-moz-transition: all .6s ease;
-webkit-transition: all .6s ease;
-ms-transition: all .6s ease;
-o-transition: all .6s ease;
transition: all .6s ease;
opacity: 0.7;
border-radius: 50%;
filter: alpha(opacity=70);
overflow: hidden;
}

.tricky_image:hover {
opacity: 1;
filter: alpha(opacity=100);
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
<!doctype html>
<html>

<head>
</head>

<body>

<div class="tricky">
<img class="tricky_image" src="location_images/sanfranciscoweb.png" alt="Example">
</div>


</body>

</html>

我想要的效果只适用于 Firefox,我假设是 IE。我从一个透明图像开始,周围有一个带有蓝色背景的 div 包装器。当用户将鼠标悬停在图像上时,我希望它在不破坏 div 包装器的设置宽度和高度的情况下放大并将不透明度恢复为 100%。这在 Firefox 中完美运行,但是当我在 Chrome 中运行动画时,图像超出了它后面的蓝色 div 包装器的宽度。这是我的代码,我们将不胜感激 & JS Fiddle http://jsfiddle.net/yaLupdzo/1/ :

<!doctype html>
<html>

<head>
<style>
.tricky {
width: 200px;
height: 200px;
border-radius: 50%;
border: 0px solid;
background: #2373bd;
display: inline-block;
position: relative;
overflow: hidden;
}

.tricky_image {
width: 100%;
height: 100%;
-moz-transition: all .6s ease;
-webkit-transition: all .6s ease;
-ms-transition: all .6s ease;
-o-transition: all .6s ease;
transition: all .6s ease;
opacity: 0.7;
border-radius: 50%;
filter: alpha(opacity=70);
overflow: hidden;
}

.tricky_image:hover {
opacity: 1;
filter: alpha(opacity=100);
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
</style>
</head>

<body>


<div class="tricky">
<img class="tricky_image" src="location_images/sanfranciscoweb.png" alt="Example">
</div>


</body>

</html>

最佳答案

这是一个已知问题,已在此处提交:https://code.google.com/p/chromium/issues/detail?id=157218

在 Webkit 中,通过硬件加速,动画层在动画期间被提升到不同的渲染表面,然后在动画完成后降级。

原来有一个简单的解决方案。通过向其添加轻量级动画,将容器元素“提升”到与硬件加速子元素相同的渲染层:

.tricky {
width: 200px;
height: 200px;
border-radius: 50%;
border: none;
background: #2373bd;
display: block;
overflow: hidden;
-webkit-transform:scale(1.0);
}

.tricky_image {
width: 200px;
height: 200px;
-webkit-transition: all .6s ease;
opacity: 0.7;
}

.tricky:hover {
-webkit-transform:scale(1.0);
}

.tricky:hover .tricky_image {
opacity: 1;
-webkit-transform:scale(1.2);
}

参见:http://jsfiddle.net/yaLupdzo/3/

请注意,我还向父容器的默认状态添加了一个简单的动画,因此悬停时不会发生同样的问题。

关于css - 转换缩放属性在 Chrome 和 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com