获取背景图像宽度
可以获得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
元素中,如本问题所述 。
如果在文档完全加载后执行此操作,浏览器应从缓存中获取图像。
没有某种解决方法,直接做到这一点是不可能的。
- 使用JQuery通过imagesLoaded (推荐)或onImagesLoad插件检测背景的图像。
- 使用JQuery Dimensions插件获取图像大小。