jQuery实现图片加载完成后改变图片大小的方法


Posted in Javascript onMarch 29, 2016

本文实例讲述了jQuery实现图片加载完成后改变图片大小的方法。分享给大家供大家参考,具体如下:

要改变图片的大小并不难,可以用jQuery操作css改变。但是前提是要判断图片是否加载完成。主要是通过jQuery的load事件和onreadystatechange来判断其状态。

对于IE6,用onreadystatechange可以直接处理,在IE7中,则需要用定时器来判断图片的readystate状态。而对于FF和Chrome刚可以直接用load事件来判断。

以下是在实例中使用的完整代码:

<script type="text/javascript">
$(document).ready(function(){
  function changeSize(obj){
  //本函数用于在图片加载时对图片大小等进行设置
   w=obj.width();
   h=obj.height();
   t=obj.attr("title");
   src=obj.attr("src");
   obj.width(w>400?400:w);
   obj.height(w>400?(400/w)*h:h);
   obj.css("cursor","pointer");
   obj.click(function(){
    $("#picDlg").html("<img src="+src+" border=0/>").fadeIn(1000).dialog({
     width:"auto",
     height:"auto",
     title:t,
     modal:true,
     draggable:false,
     resizable:false
    })
   })
  }
  if($.browser.msie){
   //IE 6.0
   if($.browser.version==6.0){
    $(".bodyLeft img").each(function(ind,ele){
     // ele.onreadystatechange =function(){
      if(ele.readyState == "complete"||ele.readyState=="loaded"){
       changeSize($(this));
      }
     //}
    })
   }
   //IE 6.0以上
   else{
    $(".bodyLeft img").each(function(){
     tempTimer=window.setInterval(function(ind,ele){
      if(ele.readyState=="complete"){
       window.clearInterval(tempTimer);
       changeSize($(this));
      }
      else{
       return;
      }
     },200);
    })
   }
  }
  //FF,Chrome
  else{
   $(".bodyLeft img").each(function(ind,ele){
    alert(ele.complete);
    if(ele.complete==true){
     changeSize($(this));
    }
   })
  }
})
</script>

上面的图片可以将图片等比例缩小显示在文章中,同时使用的jQuery的Dialog UI组件单击图片时,以一个层显示完整大小的图片。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
JavaScript数组去重的多种方法(四种)
Sep 19 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
浅谈vue项目重构技术要点和总结
Jan 23 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
实例分析vue循环列表动态数据的处理方法
Sep 28 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 02 Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 #Javascript
Jquery操作cookie记住用户名
Mar 29 #Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 #Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 #Javascript
AngularJS directive返回对象属性详解
Mar 28 #Javascript
Boostrap模态窗口的学习小结
Mar 28 #Javascript
理解javascript模块化
Mar 28 #Javascript
You might like
destoon整合UCenter图文教程
2014/06/21 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
python中的编码知识整理汇总
2016/01/26 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Python爬虫文件下载图文教程
2018/12/23 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
python实现XML解析的方法解析
2019/11/16 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
党政领导班子民主生活会整改措施
2014/09/18 职场文书
委托培训协议书
2014/11/17 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
服务器间如何实现文件共享
2022/05/20 Servers
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python