【发布时间】:2019-10-20 07:18:04
【问题描述】:
因此,您可以通过执行以下操作在 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) 从 50 像素像素化图像到 2000 像素非像素化图像,超过 0.3 或 0.5 秒。但这不起作用。我想也许可以使用背景大小,但由于限制,这也不起作用。
想知道有没有办法做到这一点。
我见过this 使用画布进行像素化。想知道是否没有其他不使用 JS/canvas 的解决方案。
<style>
div {
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
}
</style>
<div style='background-image: url(/100px.jpg)'></div>
【问题讨论】:
-
有点困惑,您是否尝试从 1 个背景图像(50 像素像素化图像)动画到相同元素的新背景图像(2000 像素非像素化图像)?还是这 2 个不同的 DOM 元素?可以添加 HTML 吗?
-
我正在尝试使用 1 个 HTML 元素并将其背景图像换成大图像。然后我想从小缩放开始大图像,这样你就可以动画缩放,像素化会自己处理。但我不确定这是否有效。
-
可能与此类似? jsfiddle.net/hbw7pnet/1
-
不,我不想像在那个 jsfiddle 中那样缩放(或动画缩放)实际图像。我使用图像缩放的想法来缩放位图,因此您绘制了一个 50 像素的图像,然后将其缩放到 2000 像素以获得像素化。
标签: html css background-image pixelate