视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jQuery:图片不完全按比例自动缩小_html/css
2020-11-27 16:10:15 责编:小采
文档
 有时我们会有这样的需求:让图片显示在固定大小的区域。如果不考虑 IE6 完全可以使用 css 的 max-width 宽度自动按比例缩小显示,但是这样有个问题,就是如果按比例缩小后,图片高度不够,那么就很难看了。

举例来说

第一种情况:如图片大小为 600×350,显示区域大小为 200×140,如果图片根据目标宽度(200)按比例缩放后大小变成 116,那么显示在 200×140 就会很难看。如下图左

第二种情况:刚好相反,如图片大小为400×400,显示区域同样是200×140,如果图片根据目标高度(140)按比例缩放后大小变成 140,即 140×140,同样难看。如下图右

这时用 jQuery 获取图片大小再判断处理一下就稍微好点:如第一种情况按140高度算出宽度 140×600/350=240,然后图片按240×140显示,多余部分用 css 的 overflow:hidden 隐藏。

下面是我的处理方法:(注意 - 这里所说的是原图片宽高都大于目标显示框大小的情况下??所以才叫缩小)

Html 部分

假如显示区域的 class 为 thumbnail

	

css 部分

.thumbnail{overflow:hidden;width:200px;height:140px;}

jQuery 部分

1. 当然是先挂 jQuery 库了,怎样挂自行Google、百度

2. 核心代码

jQuery(document).ready(function(){/* 图片不完全按比例自动缩小 by zwwooooo */ $(window).load(function(){	$('#content div.thumbnail img').each(function(){	var x = 200; //填入目标图片宽度	var y = 140; //填入目标图片高度	var w=$(this).width(), h=$(this).height();//获取图片宽度、高度	if (w > x) { //图片宽度大于目标宽度时	var w_original=w, h_original=h;	h = h * (x / w); //根据目标宽度按比例算出高度	w = x; //宽度等于预定宽度	if (h < y) { //如果按比例缩小后的高度小于预定高度时	w = w_original * (y / h_original); //按目标高度重新计算宽度	h = y; //高度等于预定高度	}	}	$(this).attr({width:w,height:h});	}); });});

适用场所:固定大小的图片显示区域,如缩略图。

折腾完。

转自:http://zww.me/archivesd/25474

下载本文
显示全文
专题