mirror of
https://github.com/koodiklinikka/nimilaput.git
synced 2026-01-26 03:14:03 +00:00
Allow click-to-upload
This commit is contained in:
33
index.html
33
index.html
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user