Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2015, 18:05
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

работа с input type file
Здравствуйте, подскажите пожалуйста как на jQuery реализовать выбор файла и выбранный файл сделать фоном определенного блока?

<input type='file'>
<div>У этого блока сделать фоном выбранный файл</div>
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2015, 18:57
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

вот так правильно?
...
    CreatePuzzle.prototype.chooseImage = function(){
        var control = $(".puzzle-dialog");
        var self=this;
            control.on("change", function() {
                self.readURL(this);
         });
    }

CreatePuzzle.prototype.readURL = function(input){
     if (input.files && input.files[0]) {
            var reader = new FileReader();
            
            reader.onload = function (e) {
                $('.puzzle').attr('src', e.target.result);
            }
            
            reader.readAsDataURL(input.files[0]);
        }
}
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2015, 23:34
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<input class="file" type="file" />
<div class="block" style="min-height: 500px;">У этого блока сделать фоном выбранный файл</div>

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
	$('.file').change(function() {
	  var reader = new FileReader(), 
		  file = this.files[0], div = $('.block');

	  reader.onloadend = function() {
		div.css('background', 'url(' + this.result + ')');
	  }

	  file ? reader.readAsDataURL(file) : div.css('background', 'none');
	});
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2015, 14:31
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

Спасибо а как в эту функцию передать контекст? у меня например уже определен div = $('.block'); в объекте я хочу чтобы можно было написать this.мое_свойство.css('background', 'url(' + this.result + ')');

Разобрался.

Последний раз редактировалось Moloch, 29.07.2015 в 14:35.
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2015, 14:35
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

и как например мне сделать фон с теми же размерами что и у картинки? у меня была идея сначала загружать картинку, получать ее размеры а потом удалять из DOM. Как можно это рациональнее сделать?
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2015, 16:06
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Сообщение от Moloch
и как например мне сделать фон с теми же размерами что и у картинки?
<input class="file" type="file" />
<div class="block">У этого блока сделать фоном выбранный файл</div>

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
$('.file').change(function() {
  var reader = new FileReader(), 
	  file = this.files[0], div = $('.block');

  reader.onloadend = function() {
	var img = document.createElement('img');
	img.src = this.result;
	
	img.onload = function() {
	  div.css({
		width: img.width,
		height: img.height
	  });
	};
	
	div.css('background', 'url(' + this.result + ')');
  }

  file ? reader.readAsDataURL(file) : div.css('background', 'none');
});
</script>

Последний раз редактировалось Decode, 29.07.2015 в 16:17.
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2015, 17:36
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустой file input суссесфул или не successful? kostyanet Элементы интерфейса 1 08.01.2015 17:56
input file событие change не корректная работа в ie8 biryuk Internet Explorer 0 11.04.2014 18:33
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
extjs 4 mvc, разбираемся с model & store Lord Daedra ExtJS 1 18.08.2011 22:36
Обработка нескольких file input Temlekur Работа 8 21.01.2010 18:30