Текст, прилетающий по частям

Анимация, выглядящая как одновременное движение символов, образующих текстовую надпись.

<html lang="ru">

<head>

<title>Анимационные эффекты | Текст, прилетающий по частям</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<meta http-equiv="Content-Language" content="ru">

<style type="text/css">

<!--

BODY

{

background: white;

}

TABLE

{

width: 100%;

height: 100%;

}

#ID_ANIMATE

{

font: bold 16px "Times New Roman", serif;

}

#ID_ANIMATE SPAN

{

position: relative;

z-index: 1;

}

-->

</style>

</head>

<body>

<TABLE>

<TR>

<TD align="center" valign="middle">

<DIV ID="ID_ANIMATE"></DIV>

</TD>

</TR>

</TABLE>

<script type="text/javascript">

<!--

var nDevX = 300;

var nDevY = 300;

var strText = "Прилетающий по частям текст";

// --

var nCount = strText.length;

var oAnimate = document.getElementById("ID_ANIMATE");

var aoChars = new Array();

var nTimerID = null;

// --

function UpdateSpanPos(nNumber)

{

aoChars[nNumber].style.top = Math.round(aoChars[nNumber].m_fX).toString(10) + "px";

aoChars[nNumber].style.left = Math.round(aoChars[nNumber].m_fY).toString(10) + "px";

}

function OnTimer()

{

var bStop = true;

for(var i = 0; i < nCount; i++)

{

aoChars[i].m_fX += aoChars[i].m_fDX;

aoChars[i].m_fY += aoChars[i].m_fDY;

if((Math.abs(aoChars[i].m_fX) < 1) &&

(Math.abs(aoChars[i].m_fY) < 1))

{

aoChars[i].m_fX = 0;

aoChars[i].m_fY = 0;

aoChars[i].m_fDX = 0;

aoChars[i].m_fDY = 0;

}

else

bStop = false;

UpdateSpanPos(i);

}

if(bStop)

window.clearInterval(nTimerID);

}

// --

for(var i = 0; i < nCount; i++)

{

var oSpan = document.createElement("SPAN");

oSpan.appendChild(document.createTextNode(strText.substring(i, i + 1)));

oAnimate.appendChild(oSpan);

aoChars[i] = oSpan;

aoChars[i].m_fX = Math.random() * 2 * nDevX - nDevX;

aoChars[i].m_fY = Math.random() * 2 * nDevY - nDevY;

aoChars[i].m_fDX = -aoChars[i].m_fX / nDevX;

aoChars[i].m_fDY = -aoChars[i].m_fY / nDevY;

UpdateSpanPos(i);

}

// --

nTimerID = window.setInterval(OnTimer, 20);

// -->

</script>

<noscript>

Внимание! Ваш браузер не поддерживает выполнение скриптов, либо скрипты отключены.

</noscript>

</body>

</html> /17/.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: