1

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

4

3 に答える 3

0
function do_it(div,output){
  var opac = parseFloat(div.style.opacity);
  opac -= 0.1;
  if(opac<=0.05){
    opac = 1;
  }
  div.style.opacity = opac;
  output.innerHTML = opac;
  div.timer = setTimeout(function(){ do_it(div,output) }, 1000);
}

var div = document.getElementById('test');
var output = document.getElementById('op');
do_it(div,output);
  1. 数値を解析する

    • parseInt(0.9) ==> 0

    • parseFloat(0.9) ==>0.9

  2. 追加の vars lik は必要ありませんup down

http://jsfiddle.net/ckBFy/29/

于 2013-07-20T05:36:24.377 に答える