I have an image swap working when the user drags & drops an image inside a div. I can't seem to figure out how to add ability to upload/swap image when div is clicked.
Below is what I have right now.
let img = new Image()
document.getElementById("logo2").appendChild(img);
function makeSwappable(imgEl){
imgEl.addEventListener('drop', dropHandler)
imgEl.addEventListener('dragover', dragoverHandler)
imgEl.addEventListener('dragleave', dragleaveHandler)
function dragoverHandler(e){
e.preventDefault()
e.target.style.opacity = 0.2
e.target.style.transition = "0.4s"
e.target.style.border = "dotted blue 0px"
e.target.style.transform = "scale(0.97)"
e.target.style.transition.timing.function = "ease-out"
}
function dragleaveHandler(e){
e.preventDefault()
e.target.style.opacity = 1
e.target.style.border = "dotted transparent 0px"
e.target.style.transform = "scale(1)"
e.target.style.transition = "0.7s"
}
function dropHandler (e){
e.preventDefault()
e.target.style.opacity = 1
e.target.style.border = "dotted transparent 0px"
e.target.style.transform = "scale(1)"
e.target.style.transition = "0.7s"
let file = e.dataTransfer.files[0]
let fileReader = new FileReader()
fileReader.onload = ((file)=>{
return (ev)=>{
e.target.src = ev.target.result
}
})(file)
fileReader.readAsDataURL(file)
}
}