gpt4 book ai didi

jquery - .height() .width() 不会根据尺寸变化进行调整

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:14 24 4
gpt4 key购买 nike

我有一张图片可以根据屏幕尺寸进行调整,但是 .height.width() 没有调整,留下我的 margin-leftmargin-top 改变。有没有办法让它调整?

    var $src = $(this).attr("href");
$('#overlay').append('<img class="image" src="' + $src + '" />');
var $image = $('img');
$('.image').css('max-height','80%');
$('.image').css('max-width','90%');
$('.image').css('position', 'fixed');
$('.image').css('top', '50%');
$('.image').css('left', '50%');
var $height = $image.height();
var $width = $image.width();
$('.image').css('margin-top', (($height/2)*-1));
$('.image').css('margin-left', (($width/2)*-1));

http://jsfiddle.net/a8a4Y/

最佳答案

问题是当您弄乱图像时图像没有加载。因此高度、宽度将始终为零。

http://jsfiddle.net/W8sNw/

所以您可以为 load 事件 添加一个处理程序,当它被触发时您可以执行您的代码:

var $src = $(this).attr("href");
$('#overlay').append('<img class="image" src="' + $src + '" />');
var $image = $('img');
$image.on("load",function(){ // This is the new stuff, it listen to the load event
// which is fired when the image is loaded and the size
// size is known

var $height = $image.height();
var $width = $image.width();
$('.image').css('margin-top', (($height/2)*-1));
$('.image').css('margin-left', (($width/2)*-1));
console.log("Height: " + $height);
console.log("Width: " + $width);
})

我还包括了一个更优化代码的示例。例如,每次您使用选择器时,JavaScript 都会在 DOM 中搜索该元素。你应该只看一次,看看: http://jsfiddle.net/W8sNw/2/

关于jquery - .height() .width() 不会根据尺寸变化进行调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com