Вход

Просмотр полной версии : КАК СДЕЛАТЬ ДВИЖУЩИЕСЯ БЛОКИ?


Brook
22.09.2012, 20:45
доброго времени суток!!!
помогите, пожалуста не могк сделать движущиеся 2 блока внутри первого
http://pic.lg.ua/x/10/2950f3/md_6ee1d794.png (http://pic.lg.ua/s/AtoS2)
принажатии на кнопку блок двигается ....
возможно ли это сделать с мопощью простейшей js -анимации и как,.... пожалуйста без jquaer
заранее спасибо

Dim@
22.09.2012, 20:46
Brook,
можно конечно :lol:, ща пример сделаю

Brook
22.09.2012, 20:47
Dim@,
спасибо
)

trikadin
22.09.2012, 21:01
jquaer
Так на моей памяти над ним ещё не извращались)) :lol:

Brook
22.09.2012, 21:04
trikadin,
наверно - не знаю, просто на всякий написал

dmitriymar
22.09.2012, 21:17
возможно ли это сделать с мопощью простейшей js -анимации и как
менять им left или марджин лефт по таймеру . у родителя оверфлоу-х -хиден

cyber
22.09.2012, 21:19
честно содрано отсюда http://javascript.ru/blog/Andrej-Paranichev/Osnovy-programmnoj-animacii-JavaScript

<!DOCTYPE HTML>
<html>
<head>
<style>
.example {
width:50px;
height:50px;
border:1px solid black;
position:absolute;
}


</style>

</head>
<body>

<div id='example' class='example'> </div>


<a href='#' id='button' style="margin:150px;">show<a/>
<script>
var bt = document.getElementById('button');

bt.onclick = animate;

function animate () {

var element = document.getElementById("example");
var from = 0; // Начальная координата X
var to = 500; // Конечная координата X
var duration = 1000; // Длительность - 1 секунда
var start = new Date().getTime(); // Время старта

setTimeout(function() {
var now = (new Date().getTime()) - start; // Текущее время
var progress = now / duration; // Прогресс анимации

var result = (to - from) * delta(progress) + from;

element.style.left = result + "px";

if (progress < 1) // Если анимация не закончилась, продолжаем
setTimeout(arguments.callee, 10);
}, 10);
function delta(progress) {
return progress;
}

return false;
}
</script>

</body>
</html>

Brook
22.09.2012, 21:26
cyber,
спасибо

Brook
22.09.2012, 21:28
но ЭтоНЕ ТО - я умею делать движение блоков мне надо что бы блок номер 2 двигался внутри блока 1, размер блока 1 меньше в 2 раза чем у номера 2 таким образом будет показана сначала левая часть потом правая!!

cyber
22.09.2012, 21:44
но ЭтоНЕ ТО - я умею делать движение блоков мне надо что бы блок номер 2 двигался внутри блока 1, размер блока 1 меньше в 2 раза чем у номера 2 таким образом будет показана сначала левая часть потом правая!!

тут прикол в функции animate вы ее можете настроить как хотите

<!DOCTYPE HTML>
<html>
<head>
<style>
.example {
width:50px;
height:50px;
border:1px solid black;
position:absolute;
left:-25px;
}

.container{

width:50px;
height:50px;
border:1px solid red;
position:absolute;
}
</style>

</head>
<body>
<div id='container' class='container'>
<div id='example' class='example'> </div>
</div>

<a href='#' id='button' style="margin:150px;">show<a/>
<script>
var bt = document.getElementById('button');

bt.onclick = animate;

function animate () {

var element = document.getElementById("example");
var from = -25; // Начальная координата X
var to = 25; // Конечная координата X
var duration = 1000; // Длительность - 1 секунда
var start = new Date().getTime(); // Время старта

setTimeout(function() {
var now = (new Date().getTime()) - start; // Текущее время
var progress = now / duration; // Прогресс анимации

var result = (to - from) * delta(progress) + from;

element.style.left = result + "px";

if (progress < 1) // Если анимация не закончилась, продолжаем
setTimeout(arguments.callee, 10);
}, 10);
function delta(progress) {
return progress;
}

return false;
}
</script>

</body>
</html>

bes
22.09.2012, 21:52
оно? http://learn.javascript.ru/css-sprite