Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Анимированный калькулятор/счетчик (jQuery, JS)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Deonis
Отправлено: 16 Января, 2012 - 16:17:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Если вы посмотрите примерчик, то увидите, что при выборе определенного чекбокса, как у счетчика в такси добавляется его значение к итоговой сумме. Интервал выставлен минимальный, но даже при этом появляется маленькая проблемка. Если добавляются не большие числа, то всё проходит достаточно быстро, но если прибавляются тысячи или даже десятки тысяч, то ждать приходится долго. Надо бы ускорить этот процесс для таких сумм.
Любым способом решить эту проблему я могу, но не хочется прибегать к индуским методам. Поэтому решил спросить тех, кто может уже решал аналогичную задачу или подскажет вариант бубна, с которым надо потанцевать.
Спасибо.
 
 Top
LIME
Отправлено: 16 Января, 2012 - 16:27:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




навскидку
у вас применяется инкремент ++
а можно прибавлять какое-то число в зависимости от суммы прибавления
 
 Top
IllusionMH
Отправлено: 16 Января, 2012 - 16:36:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Deonis, а может стоит отдельно прибавлять единицы, десятки, сотни, тысячи?
 
 Top
LIME
Отправлено: 16 Января, 2012 - 16:39:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




.

(Отредактировано автором: 16 Января, 2012 - 16:51:53)

 
 Top
Deonis
Отправлено: 16 Января, 2012 - 18:03:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




LIME пишет:
а можно прибавлять какое-то число в зависимости от суммы прибавления

IllusionMH пишет:
Deonis, а может стоит отдельно прибавлять единицы, десятки, сотни, тысячи?

Именно так, господа, но как это сделать наиболее грамотно - это и есть задачка. Не хотел сразу выкладывать свой вариант решения, но вот как я это решил на данный момент - вариант решения
С круглыми числами проблем не возникало, но если, как в примере у "Запорожца", цена будет 58281, то приходиться много играться с преобразованиями чисел. И на мой взгляд это какой-то перебор. Хотя, может я ошибаюсь.
 
 Top
IllusionMH
Отправлено: 16 Января, 2012 - 22:00:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Deonis, вот вариант, в котором сначала единицы приводятся до нужного значения, потом десятки, сотни и т.д.
Если маленькое изменение - то выглядит не оч круто.

Можно попробовать сделать, чтобы все порядки менялись одновременно.(круто смотрелось бы на перелистывающихся символах(ну как на табло))

Но вообще вариант решения на любителя.
 
 Top
Deonis
Отправлено: 17 Января, 2012 - 11:48:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




IllusionMH пишет:
вот вариант, в котором сначала единицы приводятся до нужного значения, потом десятки, сотни и т.д.

Спасибо, как вариант рассмотрю ;) Только эффект действительно ощутим не только на маленьких числах, но и с числами в которых преолбладают "0" - прокручиваться нечему ))

(Отредактировано автором: 17 Января, 2012 - 11:55:49)

 
 Top
IllusionMH
Отправлено: 17 Января, 2012 - 14:08:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Deonis, ну можно попробовать сделать так, чтобы число(ну если представить его на барабане) как бы делало оборот, и потом уже до нужного значения.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Января, 2012 - 14:27:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А не проще ли просто повертеть пару секунд рандомно все цифры и потом выдать результат?
 
 Top
IllusionMH
Отправлено: 17 Января, 2012 - 14:33:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




DeepVarvar, ХКТТБ проще Радость но мы ведь не ищем легких путей
 
 Top
DlTA
Отправлено: 17 Января, 2012 - 16:38:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $('#var1 :checkbox').change(function(){
  2.     if($(this).prop('checked')) {
  3.         var curSum = parseInt($('#var1 #res span').text(),10); // текущая отображенная сумма
  4.         var addPrice = $(this).val(); // добавляемая сумма
  5.         var i = 0;
  6.         var b = addPrice/10;
  7.         if (b<2) b=2;
  8.         var timer = setInterval(function(){
  9.             var str = curSum + i;
  10.             $('#var1 #res span').text(str);
  11.            
  12.             if (i >= addPrice){
  13.                 clearInterval(timer);
  14.             }
  15.             i=parseInt(i+b,10);
  16.         }, 1);
  17.     }
  18. });
  19.  
  20.  

(Отредактировано автором: 17 Января, 2012 - 16:42:26)

 
 Top
Deonis
Отправлено: 18 Января, 2012 - 16:29:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




DlTA, не удачный вариант. Если вывести каждое прибавляемое значение, то вы увидите в чем проблема. Ваш код в действии, (отметьте "Запорожец").
Но всё равно спасибо. И всем спасибо за участие. Вопрос можно закрывать.

(Отредактировано автором: 18 Января, 2012 - 16:30:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB