热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

js控制图片缩放、水平和垂直方向居中对齐

js控制图片缩放、水平和垂直方向居中对齐

已测试兼容 IE6,IE7,IE8,火狐FF,谷歌chrome。
这里使用了jquery插件,如果你不使用jquery,稍微改造一下也很快。


网上查了些资料,用css控制兼容性不好,看去很揪心。于是找js代码,看了几种写法总是感觉差点什么,算了,还是自己写吧,于是有了下面这个简单的方法,能自动根据图片容器大小进行缩放、水平和垂直居中对齐,效果如下图:

 

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. >  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>demo图片自居中,宽度高度自动缩放title>  
  6.   
  7. <script src="http://code.jquery.com/jquery-1.4.1.min.js">script>  
  8. <script type="text/Javascript">  
  9.     // i@huanglixiang.com  
  10.     function setImgMiddle(img) {  
  11.         var $img = $(img),  
  12.             $panel = $(img).parent();//图片容器  
  13.   
  14.         var img_width = $img.width(),img_height = $img.height(),//图片宽高  
  15.             panel_width = $panel.width(), panel_height = $panel.height(); //图片容器宽高  
  16.   
  17.         if(panel_width/panel_height < img_width/img_height){  
  18.             $img.width(panel_width);  
  19.             $img.css('margin-top', (panel_height - $img.height()) * 0.5);  
  20.         }else{  
  21.             $img.height(panel_height);  
  22.             $img.css('margin-left', (panel_width - $img.width()) * 0.5);  
  23.         }  
  24.         $img.fadeIn(100);  
  25.     }  
  26.     $(function(){  
  27.         //  这种写法在ie6,7,8都不是很正常,有时会随机丢失load事件  
  28.         $('#part2 img').load(function(){  
  29.             setImgMiddle(this);  
  30.             //console.log($(this).attr('src'));  
  31.         })  
  32.     })  
  33.   
  34.   
  35. script>  
  36.   
  37. <style>  
  38. .c{clear:both;}  
  39. li {  
  40.     background-color: #F5F5F5;  
  41.     border: 1px solid #CCCCCC;  
  42.     margin: 5px;  
  43.     overflow: hidden;  
  44.     width: 240px;  
  45.     padding:1px 1px 1px 1px;  
  46.     height: 240px;  
  47.     float:left;  
  48. }  
  49. li img{display:none;}  
  50. style>  
  51. head>  
  52. <body>  
  53.     <ul id="part1">  
  54.         <li><img src="http://xsrb.xsnet.cn/res/1/20090925/58311253832975937.jpg" onload="setImgMiddle(this);">li>  
  55.         <li><img src="http://img3.55bbs.com/photo/month_1103/1103271807a0039554cf5d95b9.thumb.jpg" onload="setImgMiddle(this);">li>  
  56.         <li><img src="http://www.xfhqw.com/uploadpic/20111126105419527.jpg" onload="setImgMiddle(this);">li>  
  57.     ul>  
  58.     <div class="c">div>  
  59.     <ul id="part2">  
  60.         <li><img src="http://xsrb.xsnet.cn/res/1/20090925/58311253832975937.jpg" >li>  
  61.         <li><img src="http://img3.55bbs.com/photo/month_1103/1103271807a0039554cf5d95b9.thumb.jpg" >li>  
  62.         <li><img src="http://www.xfhqw.com/uploadpic/20111126105419527.jpg">li>  
  63.     ul>  
  64. body>  
  65. html>  

推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • 本文介绍了使用jQuery实现图片预加载和等比例缩放的方法,同时提供了演示和相关代码。该方法可以重置图片的宽度和高度,并使图片在水平和垂直方向上居中显示。 ... [详细]
author-avatar
徐國煇_457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有