Makes use of Chrome's implementation of the Clipboard API.
A Pen by Max Dolgov on CodePen.
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> | |
<p>Hit Cmd or Ctrl V with an image on your clipboard. Click on image and hit Backspace to remove.</p> |
Makes use of Chrome's implementation of the Clipboard API.
A Pen by Max Dolgov on CodePen.
// window.addEventListener('paste', ... or | |
document.onpaste = function(event){ | |
var items = (event.clipboardData || event.originalEvent.clipboardData).items; | |
console.log(JSON.stringify(items)); // will give you the mime types | |
var blob = items[0].getAsFile(); | |
var reader = new FileReader(); | |
reader.onload = function(event){ | |
// console.log(event.target.result); // data url! | |
loadImage(event.target.result); | |
} | |
reader.readAsDataURL(blob); | |
} | |
function loadImage(dataURL) { | |
// load image from data url | |
var img = new Image(); | |
img.onload = function() { | |
// canvas.setAttribute('width', img.width); | |
// canvas.setAttribute('height', img.height); | |
document.body.appendChild(img); | |
$(img).draggable(); | |
}; | |
img.src = dataURL; | |
} | |
var lastClickedImage = null; | |
function unselectLastClicked() { | |
if (lastClickedImage) { | |
lastClickedImage.style.boxShadow = ""; | |
} | |
lastClickedImage = null; | |
} | |
function selectImage(img) { | |
img.style.boxShadow = '2px 2px 15px 2px black'; | |
lastClickedImage = img; | |
} | |
document.addEventListener('click', function(e) { | |
if (/img/i.test(e.target.tagName)) { | |
selectImage(e.target); | |
} else { | |
unselectLastClicked(); | |
} | |
}); | |
document.addEventListener('keydown', function(e) { | |
if (e.keyCode === 8) { | |
e.preventDefault(); | |
lastClickedImage.remove(); | |
unselectLastClicked(); | |
} else { | |
unselectLastClicked(); | |
} | |
}); |
body { | |
font-family:Monospace; | |
} | |
p { | |
margin:0; | |
padding:0; | |
position:absolute; | |
top:10px; | |
left:10px; | |
z-index:-10; | |
} |