Анимация scrollа с инерцией.
У меня есть различные массивы и ограничения что бы работала нормально но тут самая выжимка без лишних вещей.
Вопрос в том как устроить плавную анимацию дальнейшей прокрутки. function down(evt) { evt = (evt || event); yDown = evt.pageY; tDown = new Date().getTime(); } function up(evt) { evt = (evt || event); time = new Date().getTime() - yDown; y = yDown - evt.pageY; speed = (y/time); } function scroll(){ //?? document.getElementById("Scroll").style.marginTop = marginTop - speed*100; speed = 0.9*speed; //?? } Вопрос как правильно сделать цикл выполнения scroll() до тех пор пока speed не станет 0 . С самого начала у маня был setIterval который работал всё время. document.getElementsByTagName("body")[0].ready = (setInterval('scroll()', 41)По тому же принципу можно постоянно чистить этот интервал если speed < 0 и запускать заново на up(evt). Попробовал зациклить setTimeout() вызовом в конце. function scroll(){ document.getElementById("Scroll").style.marginTop = marginTop - speed*100; speed = 0.9*speed; if(speed > 0)setTimeout('scroll();',41) } Придумал даже такой ужас, но так и не рискнул проверить работоспособность. for (var i=0;i <inumber;i++){ setTimeout('scroll();',41*i) }; Как лучше делать подобную плавную анимацию? Задача для мобильного браузера. По этому как загрузить его как можно меньше? |
|
Часовой пояс GMT +3, время: 02:24. |