在jQuery中调整图像大小
问题描述:
我已经设置了一个小型演示程序,它可以在点击图像时自动调整图像的大小以适应它的容器div。在jQuery中调整图像大小
它通过获取图像的大小,然后将其除以框的大小,并根据宽度或高度相应地调整图像大小之前,确定哪个比率较高。查看代码以查看它的工作原理可能会更好。
唯一的问题是,它是相当不好的。它可以工作,但不是根据图像宽度调整大小,而是根据浏览器宽度计算它,但仍然在调整大小时传递正确的值。
看看它在下面的两个链接,并有一个在调整浏览器窗口看到毛刺的戏剧。我删除了overflow:hidden;
属性,以便您可以看到div外部图像的尺寸。
看看这里的代码: http://jsfiddle.net/sambeckhamdesign/NVAGG/11/
查看全屏结果在这里: http://jsfiddle.net/sambeckhamdesign/NVAGG/11/embedded/result/
或读到这里了jQuery
$('img').click(function() {
function wr(){
var imageWidth =
$(this).width()/250;
return imageWidth;
}
function hr(){
var imageHeight =
$(this).height()/200;
return imageHeight;
}
function nh(){
var newHeight =
$(this).height()/hr();
return newHeight;
}
function nw(){
var newWidth =
$(this).width()/wr();
return newWidth;
}
if (wr() > hr()){
$(this).css('width', nw() + 'px');
}else{
$(this).css('height', nh() + 'px');
}
});
答
恰好是我的头顶,我敢打赌,这是一个关闭问题。由于您在函数中引用了'this',这些函数也在另一个函数内部,因此'this'不会附加到图像上,而是附加到窗口上。您可以更新函数以将“this”的引用作为参数进行传递,也可以将变量的作用范围设置为引用“this”的click函数。
我认为你;在那里,但我不知道如何去做这件事。 – Sam 2011-02-04 15:58:36