(注意:这个问题是1.5年前提出的,而且从未有过回应... 我遇到了同样的问题,所以希望原作者 @Jaffa 不介意我跟进它,并在上面添加一个赏金,以[希望]引起一些兴趣!)
下面是原始问题,我的附加问题和示例在其下方。
[原始问题:]
我试图对 SVG 实现缩小动画效果。我已经让它工作了,但是第一帧被缩放为30时,在 Firefox 中会变得模糊/像素化。
我在 Chrome 或 Edge 中没有看到相同的问题。初始帧应该是清晰的,因为它是一个 SVG。
html,
body {
margin: 0px;
padding: 0px;
}
.wrapper {
padding: 50px 50px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
margin-top: 80px;
}
.img_zoom {
width: 400px;
height: 500px;
margin: 2em auto 2em auto;
overflow: hidden;
}
.zoom {
width: 100%;
height: 100%;
background-position: center;
background-size: cover;
animation: zoom 5s ease-in-out 4s 1 normal forwards;
transform: translate(3400px, -3600px) scale(30);
}
@keyframes zoom {
to {
margin-left: 0;
transform: translate(0px, 0px) scale(0.7);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="wrapper">
<div class="img_zoom">
<div class="zoom"><img src="https://flexion.tech/images/box-con.svg"></div>
</div>
</div>
</body>
</html>
这里提供Code pen代码:
https://codepen.io/jaffa80/pen/KKpxgeQ
有没有什么建议可以解决Firefox中的模糊问题?
我还遇到了另一个问题,如果我从@keyframe中删除margin-left:0,事情就会停止工作。任何关于此的指针都将不胜感激。
编辑:
我有一个圆形div容器,其中包含几个元素来定位圆形内的文本。我需要在用户到达时“扩大”圆形,因此我想使用transform:scale()
进行转换或动画。
然而,在Firefox中,只有在转换(或动画)完成之前,文字才会变得模糊。奇怪的是,圆形的边框保持完美清晰(我认为?)。
考虑可能需要一段时间进行预渲染,我尝试了仅使用setTimeout
延迟,以及与事件(open
和DOMContentLoaded
)和requestAnimationFrame
结合使用。我还尝试使用css的animation
而不是transition
。
在Firefox中似乎没有任何改变,但Chrome和Edge看起来很好。我不知道是否有什么前缀,或者这是Firefox中的渲染错误?
我的MCSE是下面的代码:
setTimeout(function(){
circ.classList.remove('shrunk');
},500);
body{ font-family:'fira code'; font-size:20px; }
#circ{ position:relative; border:3px solid blue; border-radius:50%; text-align:center; white-space: nowrap; transition:transform 1000ms; }
#circ span{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.shrunk{ transform:scale(0.1); }
<div class='shrunk' id='circ' style='width:336px; height:336px;'>
<span>Lorem<br>Ipsum is simply<br>dummy text of the<br>printing and typesetting<br>industry. Lorem Ipsum has<br>been the industry's<br>standard dummy text ever<br>since the 1500s, when an<br>unknown printer took a<br>galley of type and<br>scrambled it to make<br>a type specimen<br>book.</span>
</div>
有什么建议或解决方法吗?
backface-visibility: hidden
),并且都提供了不同形式的好信息。遗憾的是,我无法分割这些点数。因此,我承认决定胜负的关键因素是悬赏声望对某个用户整体声望的影响要高出500%(我记得通过前2k真的很痛苦!)。感谢两位回答者。 - ashleedawg