JavaScript DOM анимации
Можете да користите
JavaScript за да создадете комплексна анимација. Ова упатство обезбедува основно
разбирање за тоа како да користите JavaScript за да креирате
анимација.JavaScript може да се користи за преместување на голем број елементи
на ДОМ (<img />, <div> или кој било друг HTML елемент) во
рамките на страницата според некој вид на шема утврдена со логичка
равенка или функција.
JavaScript ги обезбедува следниве две
функции што често може да се користат во програмите за анимација.
- setTimeout (функција,
времетраење) - Оваа функција ја повикува функцијата по времетраење од
дефинираните милисекунди во функцијаја.
- setInterval
(функција, времетраење) - Оваа функција ја повикува функцијата по секој
временски интервал од наведените
милисекунди во функцијата.
- clearTimeout
(setTimeout_variable) - Оваа функција повикува брише секој тајмер поставен од
функциите setTimeout ().
JavaScript исто така може да постави
голем број атрибути на објект ДОМ, вклучувајќи ја и неговата позиција на екранот.
Можете да поставите горен и лев атрибут на објектот да го позиционира каде било
на екранот. Еве ја нејзината синтакса.
// Поставете растојание од левиот раб на екранот.
object.style.left = растојание во
пиксели или точки;
или
// Поставете растојание од горниот раб на екранот.
object.style.top = растојание во
пиксели или точки;
Рачна анимација
Значи, да спроведеме една едноставна анимација користејќи ги својствата на
објектот ДОМ и функциите на JavaScript како што следува. Следната листа содржи
различни методи на ДОМ.
Ја користиме функцијата JavaScript getElementById () за да добиеме ДОМ-објект и
потоа и го доделуваме на
глобалната променлива imgObj.
Дефиниравме функција за иницијализација init () за иницијализација на imgObj
каде што сме ги поставиле нејзината позиција и левите атрибути.
Ја повикуваме функцијата за иницијализација во времето на оптоварување на
прозорецот.
Конечно, ние ја повикуваме функцијата moveRight () за да го зголемиме левото
растојание за 10 пиксели. Можете исто така да го поставите на негативна вредност
за да го преместите на левата страна
За да демонстрираме како да креираме HTML анимации со JavaScript, ќе користиме
едноставна веб-страница:
Пример 1
<html>
<head>
<title>JavaScript Animacija</title>
<script type = "text/javascript">
var imgObj = null;
function init() {
imgObj =
document.getElementById('mojaSlika');
imgObj.style.position= 'relative';
imgObj.style.left = '0px';
}
function naDesno() {
imgObj.style.left = parseInt(imgObj.style.left) + 10 + 'px';
}
window.onload = init;
</script>
</head>
<body>
<form>
<img id = "mojaSlika" src = "images/index.png" />
<p>Pritisni da ja pridvizis slikata nadesno</p>
<input type = "button" value = "Pritisni " onclick = "naDesno();"
/>
</form>
</body>
</html>
Автоматизирана анимација
Во горниот пример, видовме како сликата се движи надесно со секој клик. Можеме
да го автоматизираме овој процес со користење на JavaScript функција setTimeout
() како што следува -
Употребени се повеќе методи.
Функцијата moveRight () ја повикува setTimeout () функцијата за да ја постави
позицијата на imgObj.
Додадовме нова функција стоп () за да го исчистите тајмерот поставен од
функцијата setTimeout () и да го поставиме објектот на почетната позиција.
Пример 2
<html>
<head>
<title>JavaScript Animacija</title>
<script
type = "text/javascript">
var imgObj = null;
var anim ;
function init() {
imgObj = document.getElementById('mojaSlika');
imgObj.style.position= 'relative';
imgObj.style.left = '0px';
}
function naDesno() {
imgObj.style.left = parseInt(imgObj.style.left) + 10 + 'px';
anim = setTimeout(naDesno,20); // povikuva funkcija naDesno
sekoi 20msec
}
function stop() {
clearTimeout(anim);
imgObj.style.left = '0px';
}
window.onload = init;
</script>
</head>
<body>
<form>
<img
id = "mojaSlika" src = "images/index.gif" />
<p>Pritisni
na kopcinjata za da pocne ili zastane animacijata </p>
<input type = "button" value = "Pocni" onclick = "naDesno();" />
<input type = "button" value = "Zastani" onclick = "stop();" />
</form>
</body>
</html>
Пример 3
<!DOCTYPE
html>
<html>
<body>
<h1>Moja
prva JavaScript Animacija</h1>
<div
id="anim">Mesto
za mojata animacija</div>
</body>
</html>
Направете tag - контејнер за
анимација
Сите анимации треба да бидат во однос на елементот на контејнерот.
<div id ="container">
<div
id="anim">Mesto
za mojata animacija</div>
</div>
Елементот на контејнерот треба да биде креиран со style = "position: relative".
Елементот за анимација треба да се креира со style = "position:
absolute".
#container {
width: 400px;
height: 400px;
position: relative;
background: yellow;
}
#anim {
width: 50px;
height: 50px;
position: absolute;
background: red;
}
Анимациите на JavaScript се прават со програмирање на постепени промени во
стилот на елементот.
Промените се повикуваат со тајмер. Кога интервалот на тајмерот е мал,
анимацијата изгледа континуирано.
Целосна анимација со употреба на
JavaScript
function dvizenje() {
let id = null;
const elem = document.getElementById("anim");
let pos = 0;
clearInterval(id);
id = setInterval(frame, 5);
function frame() {
if (pos == 350) {
clearInterval(id);
}
else {
pos++;
elem.style.top = pos + 'px';
elem.style.left = pos + 'px';
}
}
}
Смена на слика со
настан onMouse
Пример кој прикажува смена на
слики со настан-event onMouse.
За време на вчитувањето на оваа страница, изјавата „if“
проверува дали постои објектот на сликата. Ако објектот на сликата е недостапен,
овој блок нема да се изврши.
Конструкторот Image () создава и вчитува нов предмет на слика,
наречен image1.
На својството
src му е доделено името на надворешната датотека со слики наречена
images/html.gif.
Слично на тоа, ние го создадовме
image2 објектот и го доделивме images/http.gif во овој објект.
# (Хаш-ознаката) ја оневозможува
врската, така што прелистувачот не се обидува да оди на URL-то кога ќе го
кликнете. Оваа врска е слика.
Управувачот со настани onMouseOver
се активира кога глушецот на корисникот се движи над сликата,
а управувачот на настанот onMouseOut се активира кога глушецот на
корисникот се оддалечува од сликата.
Кога глувчето се движи над сликата,
HTTP сликата се менува од првата во втората. Кога глувчето се оддалечува од
сликата, се прикажува оригиналната слика.
Кога глувчето се оддалечува од сликата,
почетната слика html.gif повторно ќе се појави на екранот.
Пример 4
<html>
<head>
<title>Primer so Mouse Events</title>
<script
type = "text/javascript">
if(document.images) {
var slika1 = new Image(); // Polnenje na prva slika
slika1.src = "images/slika1.gif";
var slika2 = new Image(); // Polnenje na vtora slika
slika2.src = "images/slika2.gif";
}
</script>
</head>
<body>
<p>Pominete
so mouse preku slikata </p>
<a href
= "#" onMouseOver = "document.mojaSlika.src = slika2.src;"
onMouseOut = "document.mojaSlika.src = slika1.src;">
<img
name = "mojaSlika" src = "images/slika1.gif" />
</a>
</body>
</html>
|