Показать сообщение отдельно
  #1 (permalink)  
Старый 08.08.2017, 19:17
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Стилизация 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>
Ответить с цитированием