Стилизация input type и его превью
Мне надо было стилизовать input type, и что бы после загрузки, показалась превьюшка, я искал готовые решения, но они были какие-то очень большие, некоторые даже подключают большой css файл ratchet.css.
И я решил написать свой решение, хороший ли это способ? Добавил элемент button и имитация клика по инпуту. <style> .wrap {border: 1px solid; width: 500px;} #photoInput { display: none; } .img-circle { width: 400px; height: 210px; border: 1px solid; object-fit: cover; } .addImg { margin-top: 20px; border: 0; background: url("http://i94.fastpic.ru/big/2017/0808/6b/5c6e9d842b4ecb782a9c8132a068966b.png") no-repeat 8px 8px #0c6eb9; color: white; text-transform: uppercase; padding: 8px; padding-left: 30px; border-radius: 5px; } </style> <div class="wrap"> <div> <img src="" class="img-circle" id="theImage"> </div> <input type="file" id="photoInput"> <button class="addImg">Доб. Изображение</button> </div> <script> var btn = document.querySelector(".addImg"); var photoFile = document.getElementById("photoInput"); btn.addEventListener('click', function() { photoFile.click(); }) var fileReader = new FileReader(); fileReader.addEventListener('load', function() { theImage.src = this.result; }); photoInput.addEventListener('change', function(e) { var file = e.target.files[0]; fileReader.readAsDataURL(file); }); </script> |
Часовой пояс GMT +3, время: 04:05. |