2016-04-01 3 views
0

divを1秒ではなく3秒後に非表示にするには// OUT関数が必要です。私は問題は、私はdivを表示した後// OUT関数をトリガするために何かを適用する必要がありますが、私はそれを解決する方法を知らないということですね。助けてください。独立して動作する// OUT関数が必要です。// IN関数に何も追加しないようにするには、スクロール後にdivが表示され、設定された時刻に非表示にしたいからです。設定された時間後に関数divが非表示にならない

// OUT 
 
$(function() { 
 
    $("[class*=outtime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime","")); 
 
     setInterval("$('.outtime" + retraso + "').fadeOut(0)", retraso * 1000); 
 
    }); 
 
}); 
 

 
// IN 
 
$(function() { 
 
    $("[class*=intime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime","")); 
 
     $(this).delay(retraso * 1000).fadeIn(0); 
 
    }); 
 
});
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

あなたは.fadeTo(3000、0).fadeTo(1000,1)を使用することができます。 – user2950720

+0

私が必要とするようには動作しません。 –

+0

$(要素).fadeTo(3000,0); 3秒間の不透明度0(フェードアウト) – user2950720

答えて

0

// OUT 
 
function fadeOut(){ 
 
    $("[class*=outtime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime","")); 
 
     $(this).fadeTo(retraso*1000,0); 
 
    }); 
 
}; 
 

 
// IN 
 
function fadeIn(){ 
 
    $("[class*=intime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime","")); 
 
     $(this).fadeTo(retraso*1000,1, function(){ 
 
     fadeOut(); 
 
     }); 
 
    }); 
 
}; 
 
fadeIn();
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

これはいいですが、どうすればフェードタイムを0に設定できますか? –

+0

'$(this).delay(retraso * 1000).fadeIn(0、、function(){ fadeOut(); }))'の前にあったものを再利用したいと思っていました。不透明度 – user2950720

1

$(document).ready(function() { 
 
    $(".cuadrado").each(function() { 
 
    var el = $(this); 
 
    var outtime = parseInt(el.attr("class").match(/outtime\d+/g)[0].replace("outtime", "")) * 1000; 
 
    var intime = parseInt(el.attr("class").match(/intime\d+/g)[0].replace("intime", "")) * 1000; 
 
    el.fadeTo(intime, 1).fadeTo(outtime, 0); 
 
    setInterval(function() { 
 
     el.fadeTo(intime, 1).fadeTo(outtime, 0); 
 
    }, outtime + intime); 
 
    }); 
 
});
.cuadrado { 
 
    height: 100px; 
 
    width: 100px; 
 
    background: red; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

これは私が必要とするものではありません。上記のコメント。返信ありがとう:) –

+0

それを繰り返すのをやめてください。setIntervalを削除します。 – user2950720

+0

問題は、スクロールまたはクリック時にdivを表示する他の関数と混在するため、// OUT関数を別々に動作させたいという問題です。 –

関連する問題