下のCanvasをクリックすると立ち絵がフェードインします
Html コード
Htmlは「Canvasをクリックして立ち絵を表示」で使用した方法で行います。
Javascript コード
put( "img0012.jpg", "canvas-main" ); CanvasInterface2( "canvas-interface", "img/yukiho.png" );
function CanvasInterface2( id, drawid, file ) { /* canvas オブジェクトの取得 */ var canvas = document.getElementById( id ); /* canvas要素 & ブラウザ未対応の対処 */ if( ! canvas || ! canvas.getContext ) return false; /* 2D コンテキスト */ var ctx = canvas.getContext( '2d' ); /* Mouse Click イベントを取得 */ canvas.onclick = function( e ) { var fadeID = -1; var alpha = 0.0; var img = new Image; img.src = file; img.onload = function( ) { var draw_canvas = document.getElementById( drawid ); var draw_ctx = canvas.getContext( '2d' ); var x = ( draw_canvas.clientWidth - img.width) / 2; var y = ( draw_canvas.clientHeight - img.height ) / 2; /* Interval Timer を使用してフェードをさせる */ fadeID = setInterval( function( ) { if( Math.floor( alpha ) == 1 ) { clearInterval( fadeID ); } alpha += 0.05; draw_ctx.globalAlpha = alpha; // Canvas の alpha値を変更 draw_ctx.clearRect( 0, 0, draw_canvas.clientWidth, draw_canvas.clientHeight ); draw_ctx.drawImage( img, x, y ); }, 15 ); } e.preventDefault(); return false; } }
基本的に「Canvasをクリックして立ち絵を表示」と同じやり方です。
画像表示方法をsetIntervalを使用して15ミリ秒毎にAlpha値を上げていきます
※注意する点として、フェード終了時必ずclearIntervalでスレッドを終了してください。