JavaScript только функция FadeIn
fadeIn:function(speed,till){
speed = speed !== undefined ? speed : 400;
speed = typeof speed === 'number' ? speed : speed == "slow" ? 600 : speed == "fast" ? 200 : speed !== 'slow' || speed!== 'fast' ? 400 : 400;
var opc = window.getComputedStyle(this[0]).opacity;
var element = this[0];
var add = 100 / speed;
till = till !== undefined ? till : 1;
element.style.display="block";
var timer = (function a() {
if (opc >= till ){
element.style.opacity = 1;
clearInterval(timer);
return false;
}
if(browser[3] == 'MSIE' && Number(browser[4]) < 9 ){
add = 10000 / speed;
element.style.filter = 'alpha(opacity="' + (opc+ add) + '")';
}
element.style.opacity = opc;
opc = opc + add; // code here where addition starts
setTimeout(a, 50);
})();
},
Теперь вышеприведенная функция не будет работать правильно. Поскольку JavaScript не правильно добавляет плавающие десятичные дроби. Итак, я пробовал много способов...
opc = (opc * 100) + (add * 100) / 100;
Также попытался взломать, так как это дает мне мое десятичное число, а выше дает мне целое число, независимо от того, что на самом деле.
opc = "."+parseInt((opc * 100) + (add * 100) / 100,10);
Хотя я считаю, что что-то не так с вышесказанным в том, что оно превращается в струну и хорошо просто не разрезает. Таким образом, вопрос заключается в том, как я могу увеличить десятичные числа, поскольку это очень необходимо.
ПРИМЕР
0.001 - 0.002 - 0.003 - 0.004 etc
1 ответ
JavaScript отлично добавляет числа с плавающей запятой.
Возможно, один из ваших операндов не является числом с плавающей запятой.
Цитата из книги JS: JavaScript имеет один тип чисел. Внутренне он представлен как 64-битная с плавающей запятой, такая же, как и двойная в Java. В отличие от большинства других языков программирования, здесь нет отдельного целочисленного типа, поэтому 1 и 1.0 имеют одинаковое значение.
Я попытался бы отладить код, а затем посмотреть, какие значения являются строками (или не числами), а затем проанализировать их с помощью функции parseFloat.