Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Как создать массив из картинок (https://javascript.ru/forum/css-html-firefox-mizilla/21458-kak-sozdat-massiv-iz-kartinok.html)

KamalovRadik 09.09.2011 22:22

Как создать массив из картинок
 
Возможно ли такое, можно же создать массив из чисел и из строк.
Как можно создать массив из картинок?

crayday 09.09.2011 23:30

Также, как из чисел и строк:
var array = new Array();
var image = new Image();
image.src = "example.jpg"; // картинка закэширована, но ещё не в dom'е
array.push(image);

или
var array = document.getElementsByTagName('img'); // выбрать вообще все картинки (теги img) на странице

melky 10.09.2011 01:00

Цитата:

Сообщение от KamalovRadik (Сообщение 125825)
Как можно создать массив из картинок?

//myImages - массив
var myImages = [].slice.call( document.images, 0 );

// путь к первой картинке
myImages[0].src = ...

// обойдем все картинки
myImages.forEach(...)

// добавим новую картинку в массив
myImages.push( new Image );

KamalovRadik 13.09.2011 22:39

Цитата:

Сообщение от crayday
var array = document.getElementsByTagName('img');

Это значит будет браться из хтмл кода. А как тогда скрыть эти картинки в хтмл коде? Чтобы они появлялись только по определенным условиям

Sweet 13.09.2011 23:03

function getImages(n){
  var array = [];
  while( n-- )
    array.push( new Image );
  return array;
};

KamalovRadik 13.09.2011 23:27

Цитата:

Сообщение от Sweet
new Image

А затем в отдельном цикле прописать src для этих картинок, так?

KamalovRadik 13.09.2011 23:46

Если у меня в папке есть 50 картинок с именами 1-50, можно ли как-нибудь автоматизировать заполнение массива?


function getImages(n) {

array = [];
while(n--)
array.push(new Image);

};

while (n--) {

array[n].src = 'images/50.jpg'; // н-р чтобы эта "50" менялась с "n"
}

Sweet 14.09.2011 00:07

function getImages(n){
  for( var image, array = [], i = 1; i <= n; i++ ){
    image = new Image;
    image.src = "images/" + i + ".jpg";
    array.push( image );
  };
  return array;
};

KamalovRadik 01.10.2011 16:14

А как выводить изображения на экран?
document.write(array[3]);
Появляется Image HTML Obgect

KamalovRadik 01.10.2011 16:50

[object HTMLImageElement]

melky 01.10.2011 18:40

for(var i=0,b;b=array[i];i++) document.body.appendChild(b);

KamalovRadik 01.10.2011 19:37

А можно на примере 8го поста.
И желательнее без аппендчайлд. А с jquery.

melky 01.10.2011 19:40

$(array).appendTo("body")

KamalovRadik 01.10.2011 19:55

var n=15;
var image;
	for( array = [], i=2; i<n; i++){
		
		image = new Image;
		image.src = 'image/' + i + '.jpg' ;
		array.push( image ) ;
		
		
		};
		
	for(var i=0,b;b=array[i];i++) document.body.appendChild(b);


Ничего не появляется(

melky 01.10.2011 20:00

почему массив заполняется не с нуля, как положено, а с индекса 2 ?


var n=15;
var image;
	for( array = [], i=2; i<n; i++){
		
		image = new Image;
		image.src = 'image/' + i + '.jpg' ;
		array.push( image ) ;
		
		
		};
	if( document.body )	
	for(i=2;i<n;i++) document.body.appendChild(b);
        else onload=function(){  for(var i=2;i<n;i++) document.body.appendChild(b);  }

KamalovRadik 01.10.2011 20:15

У меня в папке images начинаются файлы с 2.jpeg

Не запускается код.

KamalovRadik 04.10.2011 12:48

var n=13;

var image, b;

    for( array = [], i=0; i<n; i++){     

        image = new Image;
		var s = i+2;

        image.src = 'image/' + s + '.jpg' ;

        array.push( image ) ;
$('body').append(array[i]);
        
        };


Картинки на экране не появляются. В чем причина. Не вижу.

KamalovRadik 04.10.2011 14:06

Все нашел.
Моя ошибка оказывается. Папка images у меня , а не image


Часовой пояс GMT +3, время: 13:51.