Allow click-to-upload

This commit is contained in:
Aarni Koskela
2024-10-03 11:09:39 +03:00
parent cdb5d44c00
commit ce3d2a5d1a
2 changed files with 29 additions and 4 deletions

0
.nojekyll Normal file
View File

View File

@@ -45,6 +45,7 @@
font-size: 3em; font-size: 3em;
cursor: pointer; cursor: pointer;
} }
.lisalappu:hover { .lisalappu:hover {
background: #f0f0f0; background: #f0f0f0;
} }
@@ -57,6 +58,10 @@
body { body {
margin: unset; margin: unset;
} }
input {
display: none;
}
} }
.lappu { .lappu {
@@ -70,6 +75,7 @@
} }
.lappu figure { .lappu figure {
position: relative;
user-select: none; user-select: none;
width: 30%; width: 30%;
aspect-ratio: 1/1; aspect-ratio: 1/1;
@@ -78,6 +84,14 @@
overflow: hidden; overflow: hidden;
} }
.lappu figure input {
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
}
.lappu .username { .lappu .username {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
@@ -91,10 +105,7 @@
} }
</style> </style>
<script> <script>
const handleDrop = (e) => { function handleImage(file, element) {
e.preventDefault();
const element = e.currentTarget;
const file = e.dataTransfer.files[0];
if (file && file.type.startsWith("image/")) { if (file && file.type.startsWith("image/")) {
const reader = new FileReader(); const reader = new FileReader();
reader.onload = (event) => { reader.onload = (event) => {
@@ -106,6 +117,19 @@
} else { } else {
alert("Please drop an image file."); alert("Please drop an image file.");
} }
}
function handleUpload(event) {
event.preventDefault();
const element = event.target.parentElement.querySelector("img");
handleImage(event.target.files[0], element);
}
const handleDrop = (e) => {
e.preventDefault();
const element = e.currentTarget;
const file = e.dataTransfer.files[0];
handleImage(file, element);
}; };
const handleDragOver = (e) => { const handleDragOver = (e) => {
@@ -142,6 +166,7 @@
<div class="lappu" ondblclick="handleYeet(event)"> <div class="lappu" ondblclick="handleYeet(event)">
<div style="text-align: center"> <div style="text-align: center">
<figure> <figure>
<input type="file" onchange="handleUpload(event)" />
<img <img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg==" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg=="
alt="Matti Meikäläinen" alt="Matti Meikäläinen"