1. ホーム
  2. javascript

[解決済み] フェードイン・イメージ javascript

2022-02-19 13:03:37

質問

私はJavaScriptの新米で、使い慣れたコマンドで画像をフェードインさせるコードを書こうとしています。ここでいくつかの例を見ましたが、うまくいきませんでした。これは私がやろうとしたことです。

 function myFunction() {
   for (i = 1; i < 20; i++) {
     setTimeout(function() {
       o = 1 - 1 / i
     }, 200); //this should increase the opacity
     document.getElementById("dog").style.opacity = o
   }
 }
img {
  opacity: 0;
  filter: alpha(opacity=40);
}
<center>
  <img id="dog" src="dog.jpg" draggable="true" ondragstart="drag(event)" width="500" height="500">
</center>

<button onclick="myFunction()">Lets Rock</button>

しかし、ボタンをクリックするとフェードインするのではなく、数回クリックするとフェードインせずにポップアウトします。

ありがとうございました。
アリエル

解決方法は?

これを試してみてください。 http://jsfiddle.net/kishoresahas/4wg8zcsg/

function fadeIn(el) {
    el.style.opacity = 0;
    var tick = function () {
        el.style.opacity = +el.style.opacity + 0.01;
        if (+el.style.opacity < 1) {
            (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16)
        }
    };
    tick();
}

function myFunction() {
    var el = document.getElementById("dog");
  console.log(el);
    fadeIn(el);
}
img {
    opacity: 0;
    filter: alpha(opacity=40);
}
<button onclick="myFunction()">Lets Rock</button>

<center>
    <img id="dog" src="https://i.stack.imgur.com/NHlV8.jpg" draggable="true" ondragstart="drag(event)" width="500" height="500">
</center>