jq获取图片的原始尺寸,自适应布局

原理: each()遍历,width()、height()获取宽高, load()

注意:

  由于页面加载完了,但图片不一定加载完了,所以直接通过 $("img").width(),$("img").height() 是无法稳定获取到img的准确尺寸,或为0,或偶尔为0;

解决方法: load(),元素加载完了之后执行;

代码如下:

    

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>图片自适应</title>
	<script src=‘./js/jquery-1.9.0.min.js‘></script>
	<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<style>
		* {
			margin: 0;
			padding: 0;
		}
		img {
			display: inline-block;
		}
		.autoImg {
			width: 50px;
			height: 50px;
			position: relative;
			overflow: hidden;
			float: left;
			margin: 3px;
		}
		/*固定宽 高自适应 全铺满*/
		.auto_img_Width {
			position: absolute;
			top: 50%;
			left: 0;
			width: 100%;
			height: auto;
			transform: translateY(-50%);
			-webkit-transform: translateY(-50%);
			-moz-transform: translateY(-50%);
			-ms-transform: translateY(-50%);
		}
		/*固定高 宽自适应 全铺满*/
		.auto_img_Height {
			position: absolute;
			top: 0;
			left: 50%;
			width: auto;
			height: 100%;
			transform: translateX(-50%);
			-webkit-transform: translateX(-50%);
			-moz-transform: translateX(-50%);
			-ms-transform: translateX(-50%);
		}
	</style>
</head>
<body>
	<div class="autoImg">
		<img src="./img/[email protected]"  class=‘auto_img‘>
	</div>
	<div class="autoImg">
		<img src="./img/bg.jpg"  class=‘auto_img‘>
	</div>
	<div class="autoImg">
		<img src="./img/img1.png"  class=‘auto_img‘>
	</div>
	<div class="autoImg">
		<img src="./img/[email protected]"  class=‘auto_img‘>
	</div>
	<div class="autoImg">
		<img src="./img/img2.png"  class=‘auto_img‘>
	</div>
</body>
<script>
	function imgAuto ( obj ) {
		if( $(obj).width() <= $(obj).height() ) {
				$(obj).addClass(‘auto_img_Width‘);
			} else {
				$(obj).addClass(‘auto_img_Height‘);
			}
	}
	$(function () {
		$(‘.auto_img‘).each(function () {
			$(this).load(function () {
				console.log( $(this).width() +‘:‘+ $(this).height());
				imgAuto(this);
			})
		})
	})
</script>
</html>

  图片原始图: 

效果图:      缺点: 丢失了图片的部分边角;      优点: 保持了图片的比例,不变形

时间: 2024-10-13 11:13:15

jq获取图片的原始尺寸,自适应布局的相关文章

JavaScript获取图片的原始尺寸

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 1 2 3 4 5 <img src=" http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg"> <script> var img = document.getElementsByTagName('img')[0] var width =

如何用JavaScript在浏览器端获取图片的原始尺寸大小?

var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("<img/>") // Make in memory copy of image to avoid css issues .attr("src", $(img).attr("src")) .load(function() { pic_real_widt

JS获取图片的原始尺寸

一.html5 中新的naturalWidth和naturalHeight属性 在HTML 5中,新增加了两个用来判断图片的宽度和高度的属性,分别为naturalWidth 和 naturalHeight属性, 例子如下: var rw = myimage.naturalWidth; // 真实图片宽度 var rh = myimage.naturalHeight; //真实图片高度 前提是:必须在图片完全下载到客户端浏览器才能判断,目前在ie 9,Firefox, Chrome, Safari

java 获取图片大小(尺寸)

1,获取本地图片大小(尺寸) File picture=new File(strSrc);BufferedImage sourceImg=ImageIO.read(new FileInputStream(picture)); sourceImg.getWidth(); sourceImg.getHeight(); 2,获取网络图片大小(尺寸) BufferedImage sourceImg=ImageIO.read(new URL(strSrc).openStream()); sourceImg

获取图片的原始高度

var _w = parseInt($(window).width());//获取浏览器的宽度$(".new_mess_c img").each(function(i){var img = $(this);var realWidth;//真实的宽度var realHeight;//真实的高度//这里做下说明,$("<img/>")这里是创建一个临时的img标签,类似js创建一个new Image()对象!$("<img/>"

[转]js动态获取图片长宽尺寸

http://blog.phpdr.net/js-get-image-size.html lightbox类效果为了让图片居中显示而使用预加载,需要等待完全加载完毕才能显示,体验不佳(如filick相册的全屏效果).javascript无法获取img文件头数据,真的是这样吗?本文通过一个巧妙的方法让javascript获取它. 这是大部分人使用预加载获取图片大小的例子: 01 var imgLoad = function (url, callback) { 02     var img = ne

转载:js动态获取图片长宽尺寸(兼容所有浏览器,速度极快)

转自:http://blog.phpdr.net/js-get-image-size.html lightbox类效果为了让图片居中显示而使用预加载,需要等待完全加载完毕才能显示,体验不佳(如filick相册的全屏效果).javascript无法获取img文件头数据,真的是这样吗?本文通过一个巧妙的方法让javascript获取它. 这是大部分人使用预加载获取图片大小的例子: 01 var imgLoad = function (url, callback) { 02     var img =

js获取图片原始尺寸

如何获取图片的原始尺寸大小? 如下,当给 img 设置一个固定的大小时,要怎样获取图片的原始尺寸呢? #oImg{ width: 100px; height: 100px; } <img src="images/test.jpg" id="oImg" alt=""> HTML5提供了一个新属性 naturalWidth / naturalHeight 可以直接获取图片的原始宽高.这两个属性在Firefox/Chrome/Safari/

获取图片实际渲染的宽度、高度与图片原始的宽度和高度

在写页面时经常会遇到需要获取图片的宽度.高度等情况.然而以前总是获取的是图片实际渲染的宽度和高度,也就是你用css或js设置后的图片的宽度和高度,并不是图片原始的尺寸.今天突然遇到这个问题,一时之间不知如何做,查了下资料,自己摸索了一下.特此总结一下. 例如.有这样一张图片,代码如下: <img src="创建ajax的过程.png" alt="" > 1.获取图片渲染的宽度和高度(可用js或jQuery实现). (1).使用js获取图片实际渲染的宽度.