拖拽的过程就不说了,这里主要说一下如何在前端获取到图片的相关信息。
html5里有一个fileReader的全局变量,用来读取本地文件,比如txt,img等,下面是一个简单的代码。
function checkFile(files){var file = files[0]
var reader = new FileReader()
// show表示<div id='show'></div>,用来展示图片预览的
if(!/image\/\w+/.test(file.type)){
show.innerHTML = "请确保文件为图像类型"
return false
}
// onload是异步操作
reader.onload = function(e){
show.innerHTML = '<img src="'+e.target.result+'" alt="img">'
}
reader.readAsDataURL(file)
}
这样就能够在不上传到服务器的前提下预览图片。当然,这个问题的重点是获取图片的原始尺寸,html5里还提供了两个变量来获取:naturalWidth和naturalHeight,这两个分别来获取图片的原始宽度和原始高度。
在上面的例子中,就能通过下面的方式获取到:
var width = e.target.naturalWidthvar height = e.target.naturalHeight
还有一种情况就是,如果已经存在页面里的图片,怎么获取到原始尺寸呢,可以这样:
var img = document.getElementsByTagName('img')[0] // 获取到图片var width = img.naturalWidth
var height = img.naturalHeight
<img class="img_pc" src=""><img class="img_ipad" src="">
<img class="img_phone" src="">
正常:
.img_pc { display:block}
.img_ipad { display:none}
.img_phone { display:none}
ipad上:
@media screen and (max-width:980px){
.img_pc { display:none}
.img_ipad { display:block}
.img_phone { display:none}
}
手机上:
@media screen and (max-width:980px){
.img_pc { display:none}
.img_ipad { display:none}
.img_phone { display:block}
}
望采纳!