Как рассчитать это время? - PullRequest
0 голосов
/ 12 февраля 2011

Я хочу показать некоторый эффект (анимация) с помощью jQuery в течение времени, которое должно быть рассчитано на основе того, сколько результатов найдено для конкретной иглы. Правило состоит в том, что эффект должен продолжаться не более 5 минут и, по крайней мере, длиться 5 секунд.

Итак, вот что я делаю, в частности. Я ищу в базе данных определенное слово, введенное пользователем, и подсчитываю результаты. Затем я ищу определенное слово в той же базе данных и подсчитываю результаты. Если последних результатов больше, чем прежних, мне нужно рассчитать, как долго показывать эффект. Чем больше последних результатов найдено, тем дольше время действия эффекта должно продолжаться. Кроме того, мне нужно соблюдать правило: не более 5 минут, не менее 5 секунд.

Мне нужно, чтобы это было в лучшем случае.

Это может быть глупый вопрос, но я не могу понять, как рассчитать время! :)

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

http://jsfiddle.net/rCVnv/3/

$(function(){
   var firstNum = Math.random()*10000,
       secondNum = Math.random()*10000,
       result = parseInt(secondNum - firstNum),
       milli = 0;

    if(result > 0){
        if(result < 300000 && result > 5000){
            milli = result;
            $("#test").fadeOut(result);  
        }else if(result > 300000){
             milli = 300000; 
        }else if(result < 5000){
           milli = 5000;   
       }

       $("#test").fadeOut(milli);
   }

$("#result").text("Result :  " + result); 

});

Я не совсем уверен, как вы будете рассчитывать необходимые миллисекунды. То, что я делаю здесь, это генерирует 2 случайных числа и вычитает первое значение из второго значения. Если результат составляет от 300000 миллисекунд (5 минут) до 5000 миллисекунд, то он просто исчезает при этом числе. Если он выходит за пределы этих диапазонов, он устанавливает либо верхний, либо нижний предел. Конечно, если результат отрицательный, ничего не происходит, потому что значение 1 было больше, чем значение 2.

Также я использовал fadeOut, который можно легко заменить на animate.

0 голосов
/ 12 февраля 2011
var intSecondsPerResult = 2;
var intAnimationDuration = intSecondsPerResult*{$intResultsCount};
if(intAnimationDuration < 5) {
    intAnimationDuration = 5;
} else if(intAnimationDuration > 300) {
    intAnimationDuration = 300;
}

PS: $ intResultsCount содержит размер вашего набора результатов

Это то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...