热门标签 | 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>  

推荐阅读
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ... [详细]
  • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 本文详细比较了CSS选择器和XPath在Selenium中通过页面结构定位元素的优劣,并提供了具体的代码示例,帮助读者理解两者在不同场景下的适用性。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
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社区 版权所有