我有这个透明的类似光栅的背景覆盖:链接到图像<--尝试缩小浏览器以查看效果
当放大或缩小时(尤其是在移动设备上经常发生这种情况),图像往往看起来很脏而且很难看。有没有办法让这个背景图像在屏幕上的大小始终为 10 x 10 像素,无论页面如何缩放,所以它总是看起来很清晰?
做了一些搜索,我发现这可能是一项艰巨的任务。如果不可能:有没有办法改变缩放滤镜,使图像在缩小或缩小时看起来更好?
在高分辨率显示器上,就像移动设备的显示器一样,由于小尺寸屏幕上的高分辨率导致高像素密度,您将始终有模糊的效果。
有一个解决方法来解决这个问题:
创建一个双倍大小的背景图片:你的图片是 10px 10px,创建一个 20px 20px 的。
使用所需大小应用背景图像:background-size: 10px 10px;
有了这个技巧,在高分辨率显示器上放大或查看图像时,图像将不再显得模糊。
根据评论中的要求,这里是使背景大小适应缩放的代码:
JAVASCRIPT:
if (window.addEventListener){
window.addEventListener('resize', setBackground, false);
} else {
window.attachEvent('onresize', setBackground);
}
function setBackground(){
document.body.style.backgroundSize =
(((( window.screen.width / ( window.screen.width / getImageWidth() )) / 10) > 1 ) ? (( window.screen.width / ( window.screen.width / getImageWidth() )) / 10) : 1) + "%";
}
function getImageWidth(){
var imageSrc = document
.body
.style
.backgroundImage
.replace(/url\((['"])(.*?)\1\)/gi, '$2')
.split(',')[0];
var image = new Image();
image.src = imageSrc;
var width = image.width;
return width;
}
HTML:
<body onLoad="javascript:setBackground();" style="background: url(bkg.jpg) repeat;">