javascript没有加载

时间:2011-10-30 14:19:59

标签: javascript jquery asp.net

我正在使用这个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 那里的任何人都知道为什么它从一开始就不加载?

2 个答案:

答案 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;
}