开发笔记📐 发现👽 人物👮 趣闻💦
JS:图片缩略图实现自动缩放裁切效果源代码 养花老板提供

JS:图片缩略图实现自动缩放裁切效果源代码 养花老板提供
2018-11-28 16:20:00   点击:

前几天养花老板推荐了一波使用JS实现缩略图自动缩放和裁切的方法,特别分享。

该方法通过class识别需要处理的图片,通过_width和_height获取需要的长宽值,实现比例缩放。计算后通过JS添加overflow的外框实现裁切效果。

个人也比较推荐使用DIV外框实现伪裁切的这种方式,不需要存储各种各样的缩略图,在一般的CMS系统中通常保证2个版本的图片就足够使用。能够保证图片存储中的整洁性,便于备份、维护、升级和迁移。

养了多年的君子兰不开花,没做好这2件事!

另外,使用JS配合外框的一个好处是灵活——你也可以修改下面的代码,自行处理图片的裁切位置。甚至对于特殊的图片,还可以通过增加_left和_height的方式自由指定位置。有需要的朋友们也可以根据自己的需要修改。

 

JS主函数:

//图片自动缩放
function DrawImage(ImgObj){
	var image = new Image();
	image.src = ImgObj.attr('src');
	ImgObj.attr('src', '/static/module/admin/img/onimg.png');
	var maxWidth = ImgObj.attr('_width'),
			maxHeight = ImgObj.attr('_height');

	var iWidth = image.width,
			iHeight = image.height;
			
	var containerRatio = maxWidth / maxHeight,
			imgRatio = iWidth / iHeight;
			
	if (imgRatio > containerRatio) {
		iWidth = maxWidth;
		iHeight = maxWidth / imgRatio;
		if(iHeight < maxHeight){
			iHeight = maxHeight;
			iWidth = maxHeight * imgRatio;
		}
	} else if (imgRatio < containerRatio) {
		iHeight = maxHeight;
		iWidth = maxHeight * imgRatio;
		if(iWidth < maxWidth){
			iWidth = maxWidth;
			iHeight = maxWidth / imgRatio;
		}
	} else {
		iWidth = maxWidth;
		iHeight = maxHeight;
	}
	var len = ImgObj.parent().children().length,
			parentWidth = ImgObj.parent().width(),
			parentHeight = ImgObj.parent().height()
	if((len == 1 && ImgObj.parent('td').length == 0) || (parentWidth == maxWidth && parentHeight == maxHeight)){
		var parent = ImgObj.parent().css({'overflow':'hidden','width':maxWidth+'px','height':maxHeight+'px','display':'block'});
	} else {
		var parentDiv = '<div style="overflow: hidden; width: '+maxWidth+'px; height: '+maxHeight+'px; display: block;"></div>';
		ImgObj.wrap(parentDiv);
	}
	ImgObj.attr('src', image.src);
	var ml = -(iWidth-maxWidth)/2;
	var mt = -(iHeight-maxHeight)/2;
	ImgObj.css({"width":iWidth, "height":iHeight, 'marginLeft':ml+'px', 'marginTop':mt+'px'});
}
 

 

JS初始化(需要Jquery支持):

$('.resize').each(function(){
 DrawImage($(this));
});

 

HTML图片代码示例:

img src="/abc.jpg" class="resize" _width="380px" _height="640px"

 

源码提供者:养花老板

JS 图片缩放 源代码

上一篇:转:程序员应该掌握的10个搜索技巧 用GOOGLE上自由冲浪
下一篇:Docker简介:什么是Docker虚拟化技术 虚拟打包容器简介