<script type="text/javascript">
jQuery(document).ready(function(){
setTimeout(function(){
jQuery('.my-image').each(function(){
jQuery(this).greyScale({
fadeTime: 200,
reverse: false
});
$(this).animate({ 'opacity' : 1 }, 1000);
$(this).load(function(){
jQuery(this).greyScale({
fadeTime: 200,
reverse: false
});
$(this).animate({ 'opacity' : 1 }, 1000);
});
});
}, 200);
});
</script>
上記の例では、画像をキャンバスに複製し、両方のバージョンを保持する grayScale() 関数を使用しています (灰色 = デフォルト、色 = ホバー)。
99% の確率で正常に動作しますが、ブラウザを最初に実行したときに、1 つの画像、2 つの画像、またはそのようなものの読み込みに失敗することがあります。「ロード」と「通常のイベント」の両方が機能しなかったようです。
私がそれを正しく行っているかどうか誰かが確認できますか? 画像が既に存在する場合、または画像が存在しない場合は、代替の「load()」を使用して、ロード後に確実に実行されるように、そのイベントをロードしようとします。論理的には、それは良い解決策のようです。