verfaa
Профессор
- Регистрация
- 29 Янв 2007
- Сообщения
- 417
- Реакции
- 49
- Автор темы
- #1
Есть задача вывести количество пользователей на сайте и случайным образом понемножку увеличивать его, имитируя бурную активность))
Искал в нете - не нашел, проблема в том что почти все "Countdown-счетчик на Jquery с эффектом прокрутки цифр" заточены под отсчет времени и для моей задачи не годятся.
На badoo обнаружил почти идеально подходящий под мои запросы счетчик. Нашел участок кода, который отвечает за него, скопировал, но доработать не получилось. Может гуру яваскрипта помогут запустить и если нужно немного дописать / подправить код чтобы он нормально запустился на моей странице.
HTML:
JS:
В основе этого Countdown-счетчика лежит простой спрайт Для просмотра ссылки Войдиили Зарегистрируйся
Страница с примером счетчика - Для просмотра ссылки Войдиили Зарегистрируйся (у меня показывает только в хроме, в других браузерах скрывает)
Искал в нете - не нашел, проблема в том что почти все "Countdown-счетчик на Jquery с эффектом прокрутки цифр" заточены под отсчет времени и для моей задачи не годятся.
На badoo обнаружил почти идеально подходящий под мои запросы счетчик. Нашел участок кода, который отвечает за него, скопировал, но доработать не получилось. Может гуру яваскрипта помогут запустить и если нужно немного дописать / подправить код чтобы он нормально запустился на моей странице.
HTML:
Код:
<div class="mp_cnt mp_t" id="counter">
<span class="mp_cnt_num">
<span id="mp_cnt_pos_8" class="mp_cnt_d mp_cnt_d_2"><span class="mp_cnt_d_o">2</span><i class="mp_cnt_d_f"></i></span>
<span id="mp_cnt_pos_7" class="mp_cnt_d mp_cnt_d_2"><span class="mp_cnt_d_o">2</span><i class="mp_cnt_d_f"></i></span>
<span id="mp_cnt_pos_6" class="mp_cnt_d mp_cnt_d_5"><span class="mp_cnt_d_o">5</span><i class="mp_cnt_d_f"></i></span>...</span>people are already here!
</div>
JS:
Код:
B.UCounter = new $class(B.Page, {name: "UCounter", value: 0, speed: 0, url_sync: "", spf: 3e3, step_to_sync: 10, els: {}, timer: null, step_num: 0, digits_value: null, is_animated: !1, init: function () {
if (this.value) {
this.speed = this.speed || 1e-4, this.digits_value = this.value.toString().split("").reverse();
for (var t = 0; t < this.digits_value.length; t++)if (this.els[t] = $("mp_cnt_pos_" + t), !this.els[t])return;
this.timer = new $t(this.step, this), this.run()
}
}, run: function () {
this.ups = this.spf / 1e3 * this.speed, this.delta = .3 * this.ups, this.ups = .7 * this.ups, this.timer.set(this.spf)
}, step: function () {
this.step_num++, this.value += this.ups + this.delta * Math.sin(this.step_num / this.step_to_sync * Math.PI * 2);
var t = Math.floor(this.value);
this.is_animated || this.refreshDigits(t), this.step_num == this.step_to_sync ? this.sync() : this.timer.set(this.spf)
}, refreshDigits: function (t) {
t = t.toString().split("").reverse();
for (var e = {}, i = 0; i <= t.length; i++)t[i] != this.digits_value[i] && (e[i] = {from: this.digits_value[i], to: t[i]});
this.digits_value = t, this.timer_animate = new $t(this.animate, this), this.animate(e, 0)
}, animate: function (t, e) {
this.is_animated = !0, e = 2 == e ? 0 : e + 1;
var i = 0;
for (var s in t)this.els[s] && (i = 1, 0 == e && (t[s].from = 9 == t[s].from ? 0 : +t[s].from + 1), this.els[s].className = "mp_cnt_d mp_cnt_d_" + t[s].from + (e ? "_" + e : ""), t[s].from == t[s].to && delete t[s]);
i ? this.timer_animate.set(40, t, e) : this.is_animated = !1
}, sync: function () {
new $r(this.url_sync, {ready: this.sync_ready}, this)
}, sync_ready: function (t) {
this.step_num = 0, 0 != t.speed && (this.value = t.value, this.speed = t.speed), this.run()
}})
......
остальной код)
В основе этого Countdown-счетчика лежит простой спрайт Для просмотра ссылки Войди
Страница с примером счетчика - Для просмотра ссылки Войди