Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.11.2016, 20:58
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

DlinniyZmey, прогружай все картинки заранее чтобы из кэша брать и добавляй всем скопом за раз через фрагмент:
<style>
* {
	box-sizing: border-box;
}
body {
	position: relative;
}
img {
	position: absolute;
	width: 50px;
	height: 50px;
}
</style>

<script>
(function(){
	
	var preload = function(images, callback) {
	
		var image, length = images.length, index = length;
		
		while (index--) {
			image = new Image();
			image.onload = function () {
				if (--length < 1) callback();
			};
			image.onerror = function () {
				alert('Not all images are preloaded!');
			};
			image.src = images[index];
		}
	};
	
	var layer = [
		[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
		[1, 2, 2, 2, 2, 2, 2, 2, 2, 1],
		[1, 2, 0, 0, 0, 0, 0, 0, 2, 1],
		[1, 2, 0, 0, 0, 0, 0, 0, 2, 1],
		[1, 2, 2, 2, 2, 2, 2, 2, 2, 1],
		[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
	];
	
	var render = function () {
	
		var row, col, type, image; 
		
		var fragment = document.createDocumentFragment();
		
		for (row = 0; row < 6; row++) {
			for (col = 0; col < 10; col++) {
				type = layer[row][col];
				if (type !== 0) {
					image = layer[row][col] = new Image();
					image.style.top = row * 50 + 'px';
					image.style.left = col * 50 + 'px';
					if (type === 1) {
						image.src = images[0];
					} else if (type === 2) {
						image.src = images[1];
					}
					fragment.appendChild(image);
				}
			}
		}
		
		document.body.appendChild(fragment);
	};
	
	var images = [
		'http://javascript.ru/cat/list/project.jpg',
		'http://javascript.ru/cat/list/donkey.gif'
	];
	
	preload(images, render);
	
}());
</script>

Последний раз редактировалось Rise, 27.11.2016 в 01:48.
Ответить с цитированием
  #12 (permalink)  
Старый 27.11.2016, 07:06
Интересующийся
Отправить личное сообщение для DlinniyZmey Посмотреть профиль Найти все сообщения от DlinniyZmey
 
Регистрация: 07.08.2016
Сообщений: 14

Сообщение от Rise Посмотреть сообщение
DlinniyZmey,
pole[i][j].onload=function(){document.body.appendChild(this)}
Спасибо!!!! Так и не понял, что это было, но теперь всё работает!!!!
Ответить с цитированием
  #13 (permalink)  
Старый 28.11.2016, 10:57
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

DlinniyZmey,
что-то у вас с onload больно мудрено...
<script>
window.onload = function() {
var pole=[
[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],] ;
for (var i=0;i<6;i++){
for (var j=0;j<10;j++){
if (pole[i][j]==0) {
pole[i][j]=new Image()
pole[i][j].src="http://javascript.ru/cat/list/mobile.jpg"
pole[i][j].width="50"
pole[i][j].style.position="absolute"
pole[i][j].style.left=j*50+"px";
pole[i][j].style.top =i*70+"px";
document.body.appendChild(pole[i][j])//  работает.
}}}}
</script>
<body></body>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение символа и его вывод на экран, вся цепочка процесса FanAizu Оффтопик 1 21.03.2015 01:58
Вывод миниатюр из большого изображения. AIR Общие вопросы Javascript 9 26.04.2014 22:02
Вывод данных парсинга на экран. SpiritAbsolute Общие вопросы Javascript 1 18.12.2013 17:39
Вывод изображения по будним дням DeeMCee Элементы интерфейса 4 17.07.2013 11:13
Вывод и обновления значений на экран. -Aleks- Events/DOM/Window 10 09.04.2011 13:36