获取背景图像宽度

可以获得CSS中定义的背景图像宽度吗?

body { background-image: url('background.jpg'); } 

我需要这样的东西:

 window.getComputedStyle(document.body, 'background-width'); 

 var u = window.getComputedStyle(document.body, 'background-image'); u = u.replace(/url\(/, '').replace(/\)/, ''); var w = 0; var i = new Image(); i.onload = function( ){ w = this.width; alert(w); } i.src = u; 

警告: 我已经省略了一个案例,当身体没有指定背景图像时,请记住这一点。

可以获得CSS中定义的背景图像宽度吗?

我不这么认为,但你应该能够使用一个小技巧:将图像加载到img元素中,如本问题所述 。

如果在文档完全加载后执行此操作,浏览器应从缓存中获取图像。

没有某种解决方法,直接做到这一点是不可能的。

  1. 使用JQuery通过imagesLoaded (推荐)或onImagesLoad插件检测背景的图像。
  2. 使用JQuery Dimensions插件获取图像大小。