我的div上有一个计时器,可更改div的不透明度。但是由于某种原因,数学会不断将其设置为0.1。而且我不知道为什么!

这是我的代码:

function do_it(div){
  var opac = parseInt(div.style.opacity);

 if(opac == 1){
   var dir = 'down';
 } else if(opac == 0) {
   var dir = 'up';
 }

 if(dir == 'down'){
    opac -= 0.1;
 } else {
    opac += 0.1;
 }

 if(opac > 1){
   opac = 1;
 } else if(opac < 0){
   opac = 0;
 }

div.style.opacity = opac;
div.timer = setTimeout(function(){ do_it(div) }, 1000);

}


提供了一个小提琴:

JSFiddle

div的不透明度应该从1变为0,然后以0.1的顺序再次备份

最佳答案

这是你的问题

var opac = parseInt(div.style.opacity);


应该是parseFloat

var opac = parseFloat(div.style.opacity);

关于javascript - div不透明度不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17758988/

10-12 14:08