使用HTML5实现上传图片预览功能

这在以前,想要web实现上传图片时进行预览是很困难的。主要也是借助一些插件,flash等去实现。有的做法是在选择图片后,立刻上传,再将图片展现出来,做到预览效果;如果上传者不满意或者选错了,重新上传,则还需要删除原来的。看起来要做到图片预览是非常麻烦的。
但是在html5来临之后,这一切问题都是变得那么的简单了。先看看我的效果图吧:

使用HTML5实现上传图片预览功能

源代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>使用HTML5实现上传图片预览功能</title>
		<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
		<style type="text/css">
			.imgbox,.imgbox1{
				float: left;
				margin-right: 20px;	
				margin-top: 20px;
				position: relative;
				width: 182px;
				height: 142px;
				border: 1px solid red;
				overflow: hidden;
			}
			.imgbox1{border: 1px solid blue;}
			.imgnum{
				left: 0px;
				top: 0px;
				margin: 0px;
				padding: 0px;
			}
			.imgnum input,.imgnum1 input {
				position: absolute;
				width: 182px;
				height: 142px;
				opacity: 0;
			}
			.imgnum img,.imgnum1 img {
				width: 100%;
				height: 100%;
			}
			.close,.close1 {
				color: red;
				position: absolute;
				left: 170px;
				top: 0px;
				display: none;
			}
		</style>
	</head>
	<body>
		<div class="imgbox">
			<div class="imgnum">
				<input type="file" class="filepath" />
				<span class="close">X</span>
				<img src="btn.png" class="img1" />
				<img src="" class="img2" />
			</div>
		</div>
		<div class="imgbox">
			<div class="imgnum">
				<input type="file" class="filepath" />
				<span class="close">X</span>
				<img src="btn.png" class="img1" />
				<img src="" class="img2" />
			</div>
		</div>
		<div class="imgbox1">
			<div class="imgnum">
				<input type="file" class="filepath1" />
				<span class="close1">X</span>
				<img src="btn.png" class="img11" />
				<img src="" class="img22" />
			</div>
		</div>
		
		
	</body>
	<script type="text/javascript">
		$(function() {
			$(".filepath").on("change",function() {
				var srcs = getObjectURL(this.files[0]);   //获取路径
				$(this).nextAll(".img1").hide();   //this指的是input
				$(this).nextAll(".img2").show();  //fireBUg查看第二次换图片不起做用
				$(this).nextAll('.close').show();   //this指的是input
				$(this).nextAll(".img2").attr("src",srcs);    //this指的是input
				$(".close").on("click",function() {
					 $(this).hide();     //this指的是span
					 $(this).nextAll(".img2").hide();
					 $(this).nextAll(".img1").show(); 
				});
			});
		});
		
		function getObjectURL(file) {
			var url = null;
			if (window.createObjectURL != undefined) {
				url = window.createObjectURL(file)
			} else if (window.URL != undefined) {
				url = window.URL.createObjectURL(file)
			} else if (window.webkitURL != undefined) {
				url = window.webkitURL.createObjectURL(file)
			}
			return url
		}
		
	    $(function() {
			$(".filepath1").on("change",function() {
				var srcs = getObjectURL(this.files[0]);//获取路径
				var htmlImg='<div class="imgbox1">'+
						  '<div class="imgnum1">'+
						  '<input type="file" class="filepath1" />'+
						  '<span class="close1">X</span>'+
						  '<img src="btn.png" class="img11" />'+
						  '<img src="'+srcs+'" class="img22" />'+
						  '</div>'+
						  '</div>';
				$(this).parent().parent().before(htmlImg);
				$(this).parent().parent().prev().find(".img11").hide();
				$(this).parent().parent().prev().find('.close1').show(); 
				$(".close1").on("click",function() {
					 $(this).hide();
					 $(this).nextAll(".img22").hide();
					 $(this).nextAll(".img11").show(); 
					 if($('.imgbox1').length>1){
						$(this).parent().parent().remove();
					 }
				})
			});
		});
	</script>
</html>

原文地址:http://www.xttblog.com/?p=293

使用HTML5实现上传图片预览功能

: » 使用HTML5实现上传图片预览功能

原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/251125.html

(0)
上一篇 2022年5月2日
下一篇 2022年5月2日

相关推荐

发表回复

登录后才能评论