02.07.2013, 12:12
|
|
Профессор
|
|
Регистрация: 22.02.2012
Сообщений: 212
|
|
анимированне изменение числа
Есть 2 числа начальное и к которому нужно привести. Как лучше сделать плавный переход от одного числа к другому в духе http://jsfiddle.net/Ev5fn/8/ Данная реализация не устраивает ввиду того что не удалось настроить скорость (слишком долго)
Последний раз редактировалось Tek, 02.07.2013 в 12:18.
|
|
02.07.2013, 13:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Tek,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<script>
window.onload=function(){
function number_to(id,from,to,duration)
{
var element = document.getElementById(id);
var start = new Date().getTime();
setTimeout(function() {
var now = (new Date().getTime()) - start;
var progress = now / duration;
var result = Math.floor((to - from) * progress + from);
element.innerHTML = progress < 1 ? result : to;
if (progress < 1) setTimeout(arguments.callee, 10);
}, 10);
}
number_to("example",900,1500,3000);
number_to("test",10,-5,15000)
};
</script>
</head>
<body>
<div id="example"></div>
<div id="test"></div>
</body>
</html>
|
|
02.07.2013, 13:33
|
|
Профессор
|
|
Регистрация: 22.02.2012
Сообщений: 212
|
|
Сообщение от рони
|
Tek,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<script>
window.onload=function(){
function number_to(id,from,to,duration)
{
var element = document.getElementById(id);
var start = new Date().getTime();
setTimeout(function() {
var now = (new Date().getTime()) - start;
var progress = now / duration;
var result = Math.floor((to - from) * progress + from);
element.innerHTML = progress < 1 ? result : to;
if (progress < 1) setTimeout(arguments.callee, 10);
}, 10);
}
number_to("example",900,1500,3000);
number_to("test",10,-5,15000)
};
</script>
</head>
<body>
<div id="example"></div>
<div id="test"></div>
</body>
</html>
|
Спасибо то что нужно
|
|
13.01.2015, 22:51
|
Новичок на форуме
|
|
Регистрация: 13.01.2015
Сообщений: 2
|
|
Отличный скрипт, кто может подсказать чтобы таймер для первого числа прибавлял по 50, а не по единице?
|
|
13.01.2015, 23:31
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
dambar,
var result = Math.floor(((to - from) * progress + from)/50)*50;
|
|
14.01.2015, 14:47
|
Новичок на форуме
|
|
Регистрация: 13.01.2015
Сообщений: 2
|
|
Сообщение от рони
|
dambar,
var result = Math.floor(((to - from) * progress + from)/50)*50;
|
Спасибо!
|
|
18.08.2016, 09:43
|
Интересующийся
|
|
Регистрация: 17.08.2016
Сообщений: 13
|
|
Помогите пожалуйста
А сделать чтоб эти числа начинались после нажатия кнопки
|
|
18.08.2016, 09:49
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
anna4,
а в чём проблема прописать клик на кнопку?
|
|
18.08.2016, 10:11
|
Интересующийся
|
|
Регистрация: 17.08.2016
Сообщений: 13
|
|
Я не знаю как((
Помогите пожалуйста это сделать
|
|
18.08.2016, 10:46
|
Интересующийся
|
|
Регистрация: 17.08.2016
Сообщений: 13
|
|
рони,
Помогите пожалуйста. Очень нужно. Уже неделю ищу ни как не могу найти.
как сделать чтоб этот скрипт срабатывал только после нажатия на кнопку
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<script>
window.onload=function(){
function number_to(id,from,to,duration)
{
var element = document.getElementById(id);
var start = new Date().getTime();
setTimeout(function() {
var now = (new Date().getTime()) - start;
var progress = now / duration;
var result = Math.floor((to - from) * progress + from);
element.innerHTML = progress < 1 ? result : to;
if (progress < 1) setTimeout(arguments.callee, 10);
}, 10);
}
number_to("example",900,1500,3000);
};
</script>
</head>
<body>
<div id="example"></div>
<div id="test"></div>
</body>
</html>
|
|
|
|