この例の目的は、HTML5とjQueryを使用してグレースケール/カラー画像のマウスサスペンション効果を作成する方法を示すことです。 HTML5が登場する前に、この効果を達成するには、色付きバージョンとグレースケールバージョンの2つの画像が必要でした。 HTML5は、灰色の画像が元のファイルから直接生成されるため、この効果をより簡単かつ効率的に作成するようになりました。このスクリプトは、ディスプレイキャビネットやフォトアルバムなどのデザインで役立つことを願っています。
次のjQueryコードでは、ターゲット画像を探し、グレースケールバージョンを生成します。マウスが画像に吊り下げられると、コードは徐々にグレースケールの画像を色に変更します。
- <mce:scriptsrc = jquery.min.jsmce_src = jquery.min.jstype = text/javascript> </mce:script>
- <mce:scriptType = text/javascript> <! -
- //onwindowload.thiswaitsuntilimageshaveloaded whatissential
- $(window).load(function(){
- // fadeinimagessothereis notacolorpopdocumentloadおよびthenonwindowload
- $(。itemimg).fadein(500);
- // cloneimage
- $('。itemimg ')。各(function(){
- varel = $(this);
- el.css({position:absolute})。 clone()。addclass( 'img_grayscale')。css({position:absolute、z-index:998、opacity:0})。
- varel = $(this);
- el.Parent()。css({width:this.width、height:this.height});
- el.dequeue();
- });
- this.src = grayscale(this.src);
- });
- //フェディイメージ
- $('。ITEMIMG ')。マウスオーバー(function(){
- $(this).parent()。find( 'img:first')。stop()。animate({opacity:1}、1000);
- })
- $('。IMG_GRAYSCALE ')。マウスアウト(function(){
- $(this).stop()。animate({Opacity:0}、1000);
- });
- });
- // grayscalewcanvasmethod
- functiongrayscale(src){
- varcanvas = document.createelement( 'canvas');
- varctx = canvas.getContext( '2d');
- varimgobj = newImage();
- imgobj.src = src;
- canvas.width = imgobj.width;
- canvas.height = imgobj.height;
- ctx.drawimage(imgobj、0,0);
- varimgpixels = ctx.getimagedata(0,0、canvas.width、canvas.height);
- for(vary = 0; y <imgpixels.height; y ++){
- for(varx = 0; x <imgpixels.width; x ++){
- vari =(y*4)*imgpixels.width+x*4;
- varavg =(imgpixels.data [i]+imgpixels.data [i+1]+imgpixels.data [i+2])/3;
- imgpixels.data [i] = avg;
- imgpixels.data [i+1] = avg;
- imgpixels.data [i+2] = avg;
- }
- }
- ctx.putimagedata(imgpixels、0,0,0,0、imgpixels.width、imgpixels.height);
- returncanvas.todataurl();
- }
- // - > </mce:スクリプト>
使い方* jquery.jsを引用します
*上記のコードを貼り付けます
*ターゲット画像を設定します(たとえば、.post-img、img、.gallery imgなど)
*アニメーションの速度を変更できます(たとえば、1000 = 1秒)
互換性Chrome、Safari、FirefoxなどのHTML5およびJavaScriptをサポートするブラウザで動作させることができます。ブラウザがHTML5をサポートしていない場合、この効果は元のカラー画像に戻ります。注:ローカルファイルがFirefoxとChromeで動作しない場合は、HTMLコードをWebサーバーに配置する必要があります。