Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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
jquery中的javascript图像大小调整_Javascript_Image - Fatal编程技术网

jquery中的javascript图像大小调整

jquery中的javascript图像大小调整,javascript,image,Javascript,Image,我发现了一个脚本,用于动态调整图像大小以适应特定的宽度。我为自己的web应用程序修改了它,大部分时间它都能正常工作,但由于某些原因,当图像确实具有更大的宽度时,该函数有时会随机不触发if语句,因此我希望图像永远不会调整大小。我设置了一个超时,希望这个超时能给浏览器时间来读取图像。但是没有人知道为什么它不会触发 旁注:这是一款移动网络应用程序,我可以使用HTML5吗 var maxWidth = 200; var imgWidth = $('#locImg').width();

我发现了一个脚本,用于动态调整图像大小以适应特定的宽度。我为自己的web应用程序修改了它,大部分时间它都能正常工作,但由于某些原因,当图像确实具有更大的宽度时,该函数有时会随机不触发if语句,因此我希望图像永远不会调整大小。我设置了一个超时,希望这个超时能给浏览器时间来读取图像。但是没有人知道为什么它不会触发

旁注:这是一款移动网络应用程序,我可以使用HTML5吗

     var maxWidth = 200;
     var imgWidth = $('#locImg').width();
     console.log(imgWidth);
     setTimeout(function () {
         if( imgWidth > maxWidth) {
             newWidth = maxWidth;
             var newHeight = $('#locImg').height() / ( $('#locImg').width() / maxWidth);
             $('#locImg').height(newHeight).width(newWidth);
             console.log($('#locImg').width());
             $('#loc').css('visibility','visible');
         }
         else {
             $('#loc').css('visibility','visible');
         }
      },750);

您可以使用类似这样的方法来确保图像已完全加载:

 var maxWidth = 200;
 var imgWidth = $('#locImg').width();
 var image = new Image();
 image.src = $('#locImg').attr("src");

 image.onload = (function () {
     if( imgWidth > maxWidth) {
         newWidth = maxWidth;
         var newHeight = $('#locImg').height() / ( $('#locImg').width() / maxWidth);
         $('#locImg').height(newHeight).width(newWidth);
         console.log($('#locImg').width());
         $('#loc').css('visibility','visible');
     }
     else {
         $('#loc').css('visibility','visible');
     }
  });

这样,它只在图像完全加载后才开始调整大小。

我知道这是针对移动应用程序的,但如果您希望在旧版IE中使用此功能,则应在onload函数后定义image.src。@ThomasBrasington噢!不知道我有夸克在里面。。。并不是说我太惊讶了。哈哈,谢谢你提供的信息。:)