我正在使用这个javascript来调整我网站上的图片大小。但是在加载页面时似乎没有加载javascript。 这是我的javascript:
$(document).ready(function () {
$("img.picture").each(function () {
var maxWidth = 100; // Max width for the image
var maxHeight = 100; // Max height for the image
var ratio = 0; // Used for aspect ratio
var width = $(this).width(); // Current image width
var height = $(this).height(); // Current image height
// Check if the current width is larger than the max
if (width > maxWidth) {
ratio = maxWidth / width; // get ratio for scaling image
$(this).css("width", maxWidth); // Set new width
$(this).css("height", height * ratio); // Scale height based on ratio
height = height * ratio; // Reset height to match scaled image
width = width * ratio; // Reset width to match scaled image
}
// Check if current height is larger than max
if (height > maxHeight) {
ratio = maxHeight / height; // get ratio for scaling image
$(this).css("height", maxHeight); // Set new height
$(this).css("width", width * ratio); // Scale width based on ratio
width = width * ratio; // Reset width to match scaled image
}
$(this).show();
});
});
这是我的标题:
<link href="Styles/home/photo.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="ResizePicture.js" type="text/javascript"></script>
<script src="ChangePicture.js" type="text/javascript"></script>
它叫做ResizePicture.js 那里的任何人都知道为什么它从一开始就不加载?
答案 0 :(得分:4)
在某些浏览器中,图像宽度和高度可以在加载后获取。有两种方法可以解决此问题: -
define image width and height attrs in html
或
将您的代码更改为: -
$(document).ready(function () {
$("img.picture").each(function () {
$(this)
.show()
.css('visibility', 'hidden');
$(this).load(function(){
var maxWidth = 100; // Max width for the image
var maxHeight = 100; // Max height for the image
var ratio = 0; // Used for aspect ratio
var width = $(this).width(); // Current image width
var height = $(this).height(); // Current image height
// Check if the current width is larger than the max
if (width > maxWidth) {
ratio = maxWidth / width; // get ratio for scaling image
$(this).css("width", maxWidth); // Set new width
$(this).css("height", height * ratio); // Scale height based on ratio
height = height * ratio; // Reset height to match scaled image
width = width * ratio; // Reset width to match scaled image
}
// Check if current height is larger than max
if (height > maxHeight) {
ratio = maxHeight / height; // get ratio for scaling image
$(this).css("height", maxHeight); // Set new height
$(this).css("width", width * ratio); // Scale width based on ratio
width = width * ratio; // Reset width to match scaled image
}
$(this).css('visibility', 'visible');
})
});
});
我宁愿在SERVER SIDE脚本中调整大小而不是使用js。
答案 1 :(得分:0)
CSS规则不会更优雅吗?
img.picture {
max-height: 100px;
max-width: 100px;
}