// Bindings to HTML; replace these with your components.
var $dropArea = $('#dropArea');
var $picsHolder = $('#picsHolder');
// Attach our drag and drop handlers.
$dropArea.bind({
dragover: function() {
$(this).addClass('hover');
return false;
},
dragend: function() {
$(this).removeClass('hover');
return false;
},
drop: function(e) {
e = e || window.event;
e.preventDefault();
// jQuery wraps the originalEvent, so we try to detect that here...
e = e.originalEvent || e;
// Using e.files with fallback because e.dataTransfer is immutable and can't be overridden in Polyfills (http://sandbox.knarly.com/js/dropfiles/).
var files = (e.files || e.dataTransfer.files);
var $img = $('');
for (var i = 0; i < files.length; i++) {
(function(i) {
// Loop through our files with a closure so each of our FileReader's are isolated.
var reader = new FileReader();
reader.onload = function(event) {
var newImg = $img.clone().attr({
src: event.target.result,
title: (files[i].name),
alt: (files[i].name)
});
// Resize large images...
if (newImg.size() > 480) {
newImg.width(480);
}
$picsHolder.append(newImg);
};
reader.readAsDataURL(files[i]);
})(i);
}
return false;
}
});
#dropArea {
border: 10px dashed;
border-radius: 10px;
border-color: gray;
width: 200px;
height: 200px;
}
#dropArea:hover {
border-color: black;
}