圖片點擊上傳和拖拽上傳案例

圖片點擊上傳和拖拽上傳案例jQuery寫法

一、代碼

css樣式

<style type="text/css">
			.box {
				width: 300px;
				height: 300px;
				margin: auto;
				box-sizing: border-box;
				position: relative;
				border: 3px dashed gainsboro;
			}

			.Original_img {
				width: 295px;
				height: 295px;
			}

			#sel_file {
				width: 300px;
				height: 300px;
				position: absolute;
				left: 0;
				top: 0;
				z-index: 2;
				opacity: 0;
			}
			h2{
				text-align: center;
			}
		</style>

body內容:

<body>
		<h2>點擊或者拖拽上傳</h2>
		<div class="box">
			<img src="img/upload.png" class="Original_img" />
			<input type="file" id="sel_file" value="選擇文件" />
		</div>
		
	</body>

js部分及jquery引入

<script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		var sel_file = document.querySelector("#sel_file");
		var Original_img = document.querySelector(".Original_img");
		sel_file.onchange = function(e) {
			var newimg = e.target.files[0];
			upimg(newimg);
		}
		//拖拽上傳
		var imgbox = document.querySelector(".box");
		//拖拽元素在在放置區域移動
		imgbox.ondragover = function() {
			return false;
		}
		imgbox.ondrop = function(e) {
			upimg(e.dataTransfer.files[0])
			return false;
		}
		//封裝函數
		function upimg(newimg) {
			//實例化文件對象(構造函數)
			var fileReader = new FileReader();
			fileReader.readAsDataURL(newimg)
			fileReader.onload = function(e) {
				//把加號替換成上傳圖片的路徑
				Original_img.src = e.target.result;
				Original_img.style.width = "295px";
				Original_img.style.height = "295px";
			}
		}
	</script>

二、最終效果如下:

效果一:

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

效果二:

在這裏插入圖片描述
在這裏插入圖片描述
如有出入,歡迎留言指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章