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

推荐阅读
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文详细比较了CSS选择器和XPath在Selenium中通过页面结构定位元素的优劣,并提供了具体的代码示例,帮助读者理解两者在不同场景下的适用性。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
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社区 版权所有