s でいっぱいのページがありarticle
、それらの間に余白があり、 でラップされて<div id="shell">
おり、記事の上にカーソルを合わせると他のすべてがフェードアウトする効果を作成しようとしています。これを行うのはかなり簡単ですが、ある記事から別の記事に移動すると、他のすべてが再びフェードインおよびフェードアウトします。すべての記事をそのままにしてフェードインさせるの#shell
ではなく、シェルがウィンドウ全体を占有するため、マウスがシェル内にあるときにのみフェードバックし、500 ミリ秒の記事ではフェードバックしないようにします。
$('article').hover(function() {
if ($('body').hasClass('hover')) {
$(this).fadeTo(100,1);
}
else {
$('body').addClass('hover');
$('article').not(this).fadeTo(300, 0.6);
}
}, function() {
$(this).fadeTo(300,0.6);
checkandfade();
});
function checkandfade() {
setTimeout(function() {
$(document).mousemove(function(e){
if (e.target.id == 'shell' && $('body').hasClass('hover')){
$('article').stop(true,true).fadeTo(100, 1);
$('body').removeClass('hover');
}
});
},500);
};
それは私がこれまでに持っているものですが、タイムアウトが機能しているとは思いません..時々機能しますが、ほとんどの場合、残りはフェードインしてから再びフェードアウトします。私はこれを完全に間違った方法で行っていますか、それとも私のコードにただの不具合がありますか? アイデアや簡単な解決策があれば、フィードバックをお待ちしています。
ここで私のわずかな進歩に従ってください