Javascript.RU

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

Проблема с imagesPreview
Здравствуйте, не могу понять почему когда я загружаю к примеру 3 картинки (через Multiple), то в превью они отображаются не по порядку как я выбрал. Т.е. 2,1,3

Как можно сделать чтобы отображались по порядку то что я выбрал через CTR ? (1,2,3)

$(function() {

    var imagesPreview = function(input, placeToInsertImagePreview) {
	
        if (input.files) {
            var filesAmount = input.files.length;

            for (i = 0; i < filesAmount; i++) {
                var reader = new FileReader();

                reader.onload = function(event) {
			var hrava = Math.random();
                    $($.parseHTML('........')).attr('src', event.target.result).appendTo(placeToInsertImagePreview);

                }
    reader.readAsDataURL(input.files[i]);
            }
        }

    };

    $('#gallery-photo-add').on('change', function() {
        imagesPreview(this, 'div.gallery');
    });
});
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2017, 18:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

deatlink,
onload -- работает асинхронно -- когда картинка загрузится
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2017, 19:03
Аспирант
Отправить личное сообщение для deatlink Посмотреть профиль Найти все сообщения от deatlink
 
Регистрация: 22.09.2015
Сообщений: 49

хотя я вижу что если через CTR выбираю первую, потом вторую, то мною выбранная вторая получается первой...
Ответить с цитированием
  #4 (permalink)  
Старый 08.09.2017, 19:06
Аспирант
Отправить личное сообщение для deatlink Посмотреть профиль Найти все сообщения от deatlink
 
Регистрация: 22.09.2015
Сообщений: 49

т.е выбираю через ctr la.png, ka.png, ca.png

то в строке

"ca.png" "ka.png" "la.png"

по этому мною выбранную первую la.png отображает последней.

Можно как то вывести с конца? т.е. первую мною выбранную
Ответить с цитированием
  #5 (permalink)  
Старый 08.09.2017, 19:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

deatlink,
Ответить с цитированием
  #6 (permalink)  
Старый 08.09.2017, 19:22
Аспирант
Отправить личное сообщение для deatlink Посмотреть профиль Найти все сообщения от deatlink
 
Регистрация: 22.09.2015
Сообщений: 49

понял что вы написали, onload отобразит картинки которые загрузились. Как сделать чтобы отобразить результат после того как все картинки загрузились?
Ответить с цитированием
  #7 (permalink)  
Старый 08.09.2017, 19:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

deatlink,
в onload заполнять массив картинками и проверять его длину если arr.length== numer то ...
Ответить с цитированием
  #8 (permalink)  
Старый 08.09.2017, 19:57
Аспирант
Отправить личное сообщение для deatlink Посмотреть профиль Найти все сообщения от deatlink
 
Регистрация: 22.09.2015
Сообщений: 49

я в этом очень слаб, не могли бы помочь это сделать?
Ответить с цитированием
  #9 (permalink)  
Старый 08.09.2017, 22:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

просмотр загружаемых картинок
deatlink,

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css"> .gallery img{
    height: 100px;
    width: auto;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    var imagesPreview = function(input, placeToInsertImagePreview) {
        var count = 0;
        var arr = [].map.call(input.files, function(src, i) {
            count = i + 1;
            var reader = new FileReader;
            reader.onload = function(event) {
                arr[i] = event.target.result;
                count--;
                if (!count) arr.forEach(function(src) {
                    $("<img>", {
                        src: src
                    }).prependTo(placeToInsertImagePreview)
                })
            };
            reader.readAsDataURL(src);
            return reader
        })
    };
    $("#gallery-photo-add").on("change", function() {
        imagesPreview(this, "div.gallery")
    })
});
  </script>
</head>

<body>
<div class="gallery"></div>
<input id="gallery-photo-add" name="" type="file" multiple="">
</body>
</html>

Последний раз редактировалось рони, 09.09.2017 в 00:26.
Ответить с цитированием
  #10 (permalink)  
Старый 08.09.2017, 23:58
Аспирант
Отправить личное сообщение для deatlink Посмотреть профиль Найти все сообщения от deatlink
 
Регистрация: 22.09.2015
Сообщений: 49

когда выбираю в окне первый файл, а потом другие то первый в конец выводится(
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47