当前位置:始祖网址提交 » 站长资讯 » 免费资源 » 技术文章 » 文章详细

JavaScript动态调整图片尺寸

来源:站长分类目录 浏览:355次 时间:2014-10-26

在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

我前段时间写的一篇文章就遇到过这种事情,后来用CSS的overflow和max-width属性暂时解决了页面变形的问题。这种方法好处是简单,但坏处是会破坏某些细节的效果。

如overflow:hidden,意思是当内部元素宽度大于父框架时隐藏超出宽度的部分。这样做可能会是一些内容突然截断,被隐藏了,很对不起观众。

通过max-width属性限制文章插图最大宽度的话,需要考虑各浏览器的兼容性。IE6是不支持这个属性的,在我印象中,一些浏览器虽然支持这个属性,但图片不是等比缩放的(好像是Safari和Opera,记不清了),这样做的话对这些浏览器的用户很不公平。

因此,我最终选择的是通过JavaScript动态改变图片尺寸。这种方法对各种浏览器兼容性良好(现在应该很少人会禁用JavaScript吧?),如果换主题的话,也可以灵活地改变文章插图的最大尺寸。

方案有两个,由于我使用的主题是加载了jQuery库的,因此可以用以下代码实现:

以下为引用的内容:
$(document).ready(function() { $('.post img').each(function() { var maxWidth = 100; // 图片最大宽度 var maxHeight = 100; // 图片最大高度 var ratio = 0; // 缩放比例 var width = $(this).width(); // 图片实际宽度 var height = $(this).height(); // 图片实际高度   // 检查图片是否超宽 if(width > maxWidth){ ratio = maxWidth / width; // 计算缩放比例 $(this).css("width", maxWidth); // 设定实际显示宽度 height = height * ratio; // 计算等比例缩放后的高度  $(this).css("height", height * ratio); // 设定等比例缩放后的高度 }   // 检查图片是否超高 if(height > maxHeight){ ratio = maxHeight / height; // 计算缩放比例 $(this).css("height", maxHeight); // 设定实际显示高度 width = width * ratio; // 计算等比例缩放后的高度 $(this).css("width", width * ratio); // 设定等比例缩放后的高度 } }); });

如果不想加载jQuery库,可以用以下代码:

以下为引用的内容:
function ResizeImage(image, 插图最大宽度, 插图最大高度) { if (image.className == "Thumbnail") { w = image.width; h = image.height;   if( w == 0 || h == 0 ) { image.width = maxwidth; image.height = maxheight; } else if (w > h) { if (w > maxwidth) image.width = maxwidth; } else { if (h > maxheight) image.height = maxheight; }  
        image.className = "ScaledThumbnail"; } }

采用纯JavaScript的话,麻烦点,需要手动为图片加上class=”Thumbnail”,但最终效果是一样的。

推荐站点

  • 快速提升门_医用门_卷帘防火门快速提升门_医用门_卷帘防火门

    衢州玖亿门业有限公司是集生产销售维护为一体的现代化企业:主要产品有:电动伸缩门、电动感应门、PV快速门、电动抗风门、电动车库门、电动卷闸门、电动水晶门、电动防火门、快速提升门、停车系统、智能道闸等产品。 本公司有多名资深技术工程安装师傅,还培养了一批熟练的技工,员工具有丰富的安装经验,强大的安装工程队伍,让您的工程安装和后期的维护,有更好的保障。 只要您一个电话联系到玖亿,我们会有专业人员上门为您服务,不论您是工程、企业或个人,安装新的门还是维修门,我们都会根据施工现场的实际情况和您的要求给出专业合理的方案供您选择。 企业的宗旨:以人为本客户至上的原则, 与客户真诚合作,和客户建立长期友好的合作关系,用高质量的产品赢得客户满意。给客户提供专业、及时、便捷的服务! 产品造型美观大方、新颖独特,价位合理,安全实用 ,欢迎广大新老客户来电详询。

    www.f58f.com
  • 衢州感应门_衢州快速门_衢州玖亿门业有限公司衢州感应门_衢州快速门_衢州玖亿门业有限公司

    衢州感应门厂家,专业定制、安装、维修各种感应门,为您解决感应门相关的任何疑难杂症。衢州玖亿门业是明智的选择,本公司产品大部分都是定制产品,按照贵司的需求样式尺寸定做,感应门、快速门、伸缩门,电卷闸门以及工厂和小区配套使用的岗亭、道闸、车牌识别、门禁电锁等,本公司一应俱全,一站式服务,解决您的售后顾虑问题。企业的宗旨:用高质量的产品赢得客户满意。给客户提供专业、及时、便捷的服务!

    http://www.door-industry-cn.com/
  • 免费发布信息网站大全_大中国商业信息网免费发布信息网站大全_大中国商业信息网

    大中国商业信息网免费发布不限制条数,大中国商业信息网是一个可以免费发布分类信息的B2B平台。可免费发布您的产品信息!便捷免费的B2B供求信息发布平台

    www.greatcnb2b.com
  • 大中华电子商务网大中华电子商务网

    大中华电子商务网免费发布不限制条数,大中华电子商务网是一个可以免费发布分类信息的B2B平台。可免费发布您的产品信息!便捷免费的B2B供求信息发布平台

    www.greatercnb2b.com
  • 全球商务信息网_中国分类信息网站大全_免费的网络推广平台全球商务信息网_中国分类信息网站大全_免费的网络推广平台

    欢迎访问全球商务信息网,这里有各行业信息网/B2B电子商务网站,是最方便的免费网络推广平台,已成为无数商家网络营销/网络推广的首选网站!

    www.globalb2bcn.com