Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Змея экранная... (анимация) (https://javascript.ru/forum/events/32827-zmeya-ehkrannaya-animaciya.html)

ivan2006bip 31.10.2012 16:48

Змея экранная... (анимация)
 
Всем привет!

есть длиннющая страница, с таким же длинным бекфоном...

картинка бэкфона - вертикальная линия, не всегда ровная, местами изогнута, иногда под 90градусов...

нужно ее анамировать, чтобы при прокрутке страницы вниз она как бы прорисовывалась сверху-вниз

сначала думал наложить поверх нее блок с фикс позиционированием, чтобы он как бы закрывал нижнюю часть линии, но она иногда под 90градусов изгибается, и будет не совсем тот визуальный эффект...

dmitriymar 31.10.2012 23:40

змею подколодную -знаю, змея траншейного -знаю, о змее экранной , не , не знаю.:)
По русски выражай свои мысли, а не на дивном юго-восточном диалекте марсианского языка

danik.js 01.11.2012 09:51

Цитата:

вертикальная линия, не всегда ровная, иногда под 90градусов
Пойду чинить свой мозг...

ivan2006bip 01.11.2012 12:45

Вложений: 1
изображение линии, надеюсь все прояснит)

вот прорисовка для вертикальных и горизонтальных линий

но вот как быть с закруглением и непрямыми углами :blink:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Line test</title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>

</head>

<body>

<script>
$(document).ready(function(){
$(function(){
	
	var path = new Array(
		{
			direction: 'down',
			blocks: 20,
		},
		{
			direction: 'right',
			blocks: 10,
		},
		{
			direction: 'down',
			blocks: 17,
		},
		{
			direction: 'left',
			blocks: 25,
		},
		{
			direction: 'down',
			blocks: 30,
		},
		{
			direction: 'down',
			blocks: 30,
		}
	);
	
	var drawContainer = $('body');
	
	var blockSize = 7, //px
		startX = 300, //point
		startY = 100, //poin
		startDelay = 2000, //ms
		drawSpeed = 40;
	
	var blocks = new Array(),
		lastX = startX, lastY = startY,
		delay = startDelay,
		lastIndex = 0;
	
	//draw path
	for(var i = 0; i < path.length; i++){
		for(var f = 0; f < path[i].blocks; f++){
			
			blocks[lastIndex] = $('<div />').css({
				position: 'absolute',
				top: lastY + 'px', 
				left: lastX + 'px', 
				opacity: 0,
				width: blockSize + 'px',
				height: blockSize + 'px',
				background: '#000'
			})
			.delay(delay).animate({opacity: 1}, 200)
			.appendTo(drawContainer);
		
			lastIndex ++;
			delay += drawSpeed;
						
			switch(path[i].direction){
				case 'down':
					lastY += blockSize;
					break;
					
				case 'right':
					lastX += blockSize;
					break;
					
				case 'left':
					lastX -= blockSize;
					break;
					
				case 'up':
					lastY -= blockSize;
					break;
			}
		
		}
	}
	
});
});
</script>
</body>
</html>

dmitriymar 01.11.2012 15:18

Цитата:

Сообщение от ivan2006bip
но вот как быть с закруглением и непрямыми углами

используя канву или svg

ivan2006bip 01.11.2012 22:51

если бы знать еще канву...

cyber 01.11.2012 23:20

ivan2006bip,
вот:
http://w3pro.ru/article/html-5-canva...chinayushchikh
http://habrahabr.ru/post/111308/
https://developer.mozilla.org/ru/doc...D0%B5_c anvas


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