首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript纯FadeIn函数

JavaScript纯FadeIn函数
EN

Stack Overflow用户
提问于 2014-01-16 00:00:29
回答 1查看 49关注 0票数 0
代码语言:javascript
复制
  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没有正确地添加浮动小数。所以我尝试了很多方法..。

代码语言:javascript
复制
 opc = (opc * 100) + (add * 100) / 100;

也尝试了一个接近的黑客,因为这给了我我的十进制数,上面给了我一个完整的数字,不管是什么。

代码语言:javascript
复制
 opc = "."+parseInt((opc * 100) + (add * 100) / 100,10);

虽然我相信上面的问题是它变成了一根线,但是它没有被割断。所以问题是如何增加小数,因为这是非常必要的。

示例

代码语言:javascript
复制
  0.001 - 0.002 - 0.003 - 0.004 etc 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 00:10:41

JavaScript正在添加浮点数精细。

可能您的操作数之一不是浮点数。

引用JS书中的话: JavaScript只有一个数字类型。在内部,它被表示为64位浮点,与Java的double相同.与大多数其他编程语言不同,没有单独的整数类型,因此1和1.0是相同的值。

我将尝试调试代码,然后查看哪些值是字符串(或不是数字),然后使用parseFloat函数解析它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21150857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档