Картинка с типом input=“file”

450
24 ноября 2016, 09:48

Доброго времени суток, есть задача.

Есть картинка(аватарка) при нажатии на неё, нужно вызывать input="file" что бы подгружать картинку и менять аватарку, не хочется велосипедить с JS и jQuery может есть другое решение?

Answer 1

Если Вам только стилизовать input type=file, то вот, например:

#ava { 
  display: none; 
} 
 
label { 
  cursor: pointer; 
}
<form method="post" action="" enctype="multipart/data"> 
  <label for="ava"><img src="http://zarablegko.ru/wp-content/uploads/2011/07/avatarki.jpg" width="100" /></label> 
  <input type="file" id="ava" name="ava" /><br /> 
  <input type="submit" value="Загрузить аву" /> 
</form>

Но саму загрузку на сервер без php или nodejs реализовать нельзя.

Answer 2

По идее, надо загружать на сервер. Но для остального можно использовать что-то такое:

document.querySelector("input").addEventListener("change", function () { 
  var fr = new FileReader(); 
 
  fr.addEventListener("load", function () { 
    document.querySelector("label").style.backgroundImage = "url(" + fr.result + ")"; 
  }, false); 
   
  fr.readAsDataURL(this.files[0]); 
});
label { 
  display: inline-block; 
  width: 4em; 
  height: 4em; 
  background: silver; 
  background-size: contain; 
} 
 
input { 
  display: none; 
}
<label for=pct></label> 
<input type=file id=pct>

READ ALSO
jquery, чем заменить запись

jquery, чем заменить запись

Как заменить вот такую часть кода - конкретные id - делать disabled?.

333
Проблема с чтением xml файла

Проблема с чтением xml файла

Имеется xml файл. Который я пытаюсь распечатать в виде таблицы.

647
Тег `input list` автозамена символа

Тег `input list` автозамена символа

У меня есть list со значениями 'a'(эй), 'b'(би), 'c'(си). Когда я пишу латинскую a(эй) то мне показывает, что в списке есть a(эй) и я выбираю из списка.

459