Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在渲染之前获取IMG元素宽度_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在渲染之前获取IMG元素宽度

Javascript 在渲染之前获取IMG元素宽度,javascript,jquery,html,Javascript,Jquery,Html,我编写这个脚本是为了在调整窗口大小时,使我的站点上的墙纸(对象的图片)正确定位并正确居中。现在它的工作方式正是我想要的,但只有当窗口调整大小时,在正常情况下,当窗口没有调整大小时,它显然无法获得img元素的宽度,因为它不会减去左css属性的一半。我怎么得到它 HTML: JS: 屏幕宽度; 屏幕高度; 总高度; var aspectRatio; var blah=假//丑陋的黑客 var-navbarSize=41; var墙纸=$(“#墙纸”); 函数getAspectRatio(h,w

我编写这个脚本是为了在调整窗口大小时,使我的站点上的墙纸(对象的图片)正确定位并正确居中。现在它的工作方式正是我想要的,但只有当窗口调整大小时,在正常情况下,当窗口没有调整大小时,它显然无法获得img元素的宽度,因为它不会减去左css属性的一半。我怎么得到它

HTML:


JS:


屏幕宽度;
屏幕高度;
总高度;
var aspectRatio;
var blah=假//丑陋的黑客
var-navbarSize=41;
var墙纸=$(“#墙纸”);
函数getAspectRatio(h,w){
return(h-1)/w;//丑陋的黑客
}
功能调整壁纸(宽、高){
if(typeof(aspectRatio)==“未定义”)aspectRatio=@bgImage.aspectRatio;//由服务器框架交付
totalHeight=(h-navbarSize).toString()+'px';
css(“高度”,总高度);
css(“宽度”、“自动”);
css(“左”(w/2)-(wallpar.width()/2)+“px”);
css(“top”,“41px”);
if(getAspectRatio(wallpaper.height()、wallpaper.width())>aspectRatio&&blah){
css(“宽度”,(w).toString()+'px')
css(“高度”、“自动”)
css(“top”((h/2)-(wallpar.height()/2))+20.5+'px');
css(“左”,“0px”);
}
}
调整壁纸的大小($(窗口).width(),$(窗口).height());
废话=正确;
$(窗口)。调整大小(函数(){
调整壁纸的大小($(窗口).width(),$(窗口).height());
});

快速上传我所说的内容:

在调整图像大小之前,您必须等待图像下载。在加载处理程序中围绕初始调用:

wallpaper.on('load', function() {
    resizeWallpaper($(window).width(),$(window).height());
});

您必须等待图像下载,然后才能调整其大小。在加载处理程序中围绕初始调用:

wallpaper.on('load', function() {
    resizeWallpaper($(window).width(),$(window).height());
});
wallpaper.on('load', function() {
    resizeWallpaper($(window).width(),$(window).height());
});