Context Menu - Insert Image
HTML
<img src="" alt="">
<input type="file" onchange="previewFile(event)" class="custom-file-input">
CSS
/*Context-Menu*/
#context-menu {
width: 200px;
border-radius: 5px;
padding: 0;
position: relative;
visibility: hidden;
}
#context-menu ul {
list-style-type: none;
margin: 0;
line-height: 50px;
padding: 0;
text-align: center;
}
#context-menu > ul > li {
cursor: pointer;
}
#context-menu > ul > li:nth-child(n < 3) {
border-bottom: 1px dotted;
}
#context-menu > ul > li:hover {
background-color: #D5D8DE;
}
/*Input File*/
.custom-file-input {
color: transparent;
}
.custom-file-input::-webkit-file-upload-button {
visibility: hidden;
}
.custom-file-input::before {
content: 'Inserir Imagem';
color: black;
display: inline-block;
background: #fff;
border: 1px solid #999;
border-radius: 3px;
padding: 5px 8px;
outline: none;
white-space: nowrap;
-webkit-user-select: none;
cursor: pointer;
font-weight: 300;
font-size: 10pt;
}
.custom-file-input:hover::before {
background-color: #D5D8DE;
}
.custom-file-input:active {
outline: 0;
}
.custom-file-input:focus {
outline: none !important;
}
.custom-file-input:active::before {
background-color: #fff;
}
.div-text {
width: 500px;
height: 500px;
border: 1px solid #000;
}
JavaScript
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var caminhoVirtual = URL.createObjectURL(file);
preview.src = caminhoVirtual;
}