1

もう一度、私は自分が理解できない何かに行き詰まっていることに気づきます。どんな助けでも大歓迎です。何かをクリックすると、背景がマスクされ、モーダル ウィンドウにコンテンツが表示されます。「display:none」と「opacity:0」の div があり、ユーザーがモーダルをトリガーすると、この div はすべてをオーバーレイし、特定の透明度を持ちます。不透明度を設定する「for」ループを実行して、不透明度が目的の値よりも小さいかどうかを確認します。このループ内で、「setInterval」を実行して、目的の値に達するまで不透明度の値を徐々に増やします。目的の値に到達したら、「clearInterval」に対して「if」ステートメントを実行します。これまでの私のコードは次のとおりです。

var showMask = document.getElementById('mask');
function fireModal(){
showMask.style.opacity = 0;
showMask.style.display = 'block';
var getCurrentOpacity = showMask.style.opacity;
var increaseOpacity = 0.02;
var finalOpacity = 0.7;
var intervalIncrement = 20;
var timeLapse = 500;
function fadeIn(){
    for(var i = getCurrentOpacity; i < finalOpacity; i++){
        setInterval(function(){
            showMask.style.opacity = i;   
        }, intervalIncrement)    
    }
    if(getCurrentOpacity == finalOpacity){
        clearInterval();
    }
}
fadeIn();
}

ご想像のとおり、これは機能していません。徐々にフェードインせずに不透明度を「1」に設定するだけです。ご協力いただきありがとうございます。

4

2 に答える 2

2

このようなものには、jquery、mootools、または extjs を使用する必要があります。

しかし、基本的にはこれを行う必要があります:

var id = setInterval(function() {
   showMask.style.opacity += .05;
   if (showMask.style.opacity >= 1)
   {
      clearInterval(id);
   }
},200)

これは 2 秒以上で消えます。

于 2010-04-22T18:34:38.733 に答える
0

jQuery の使用を強く推奨する別の人物として、私を奮い立たせてください。私の職場環境では、基本的にあらゆる昇進を恐れている企業の上司のために、同様の課題に直面することがよくあるので、あなたの苦境を理解しています. しかし、そうは言っても、車輪の書き直しに時間を費やす代わりに、適切な解決策、この場合は jQuery または他の JavaScript フレームワークを使用する方法を理解することに時間を費やすことをお勧めします。独自の関数を作成できる場合は、jQuery を使用できます。

<script>
  document.write("<scr" + "ipt src='http://givemejquery'></scr" + "ipt>");
</script>
于 2010-04-22T19:08:16.897 に答える