因此,您可以通过执行以下操作在 CSS 中获得像素化:
- 设置
background-image
为非常小的图像(例如 50 像素或 100 像素)。 - 设置
image-rendering: pixelated
在元素上。
这会给你像素化的外观。
现在我想通过在浏览器完成下载后用大图像替换“非常小的图像”来制作动画:
let img = new Image()
img.src = largeVersion
img.onload = function(){
// set css background-image to the new image perhaps, not sure...
}
问题有两个方面。
- 我想要使
background-image
用background-size: cover
它来正确填充容器元素。所以你不能在任何像素化动画中使用背景大小。 transform: scale(0.1)
(以接近原始像素化大小)不起作用,因为它会缩放整个元素。
我想做这样的事情:动画transform: scale(x)
从 50px 像素化图像到 2000px 非像素化图像,超过 0.3 或 0.5 秒。但这不起作用。我想也许使用背景大小,但由于限制,这也不起作用。
想知道是否有任何方法可以做到这一点。
我已经看到这个使用画布进行像素化。想知道是否没有其他解决方案可以在不使用 JS/canvas 的情况下工作。
<style>
div {
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
}
</style>
<div style='background-image: url(/100px.jpg)'></div>