이 예제의 목적은 HTML5 및 jQuery를 사용하여 그레이 스케일/컬러 이미지의 마우스 서스펜션 효과를 만드는 방법을 보여주는 것입니다. HTML5가 나타나기 전에이 효과를 달성하려면 컬러 및 그레이 스케일 버전의 두 이미지가 필요했습니다. HTML5는 이제 원래 파일에서 직접 회색 이미지가 생성 되므로이 효과를보다 쉽고 효율적으로 만듭니다. 이 스크립트가 디스플레이 캐비닛 또는 사진 앨범과 같은 디자인에 유용하다는 것을 알게되기를 바랍니다.
다음 jQuery 코드는 대상 이미지를 찾고 그레이 스케일 버전을 생성합니다. 마우스가 이미지에 매달리면 코드는 점차 회색조 이미지를 색상으로 변경합니다.
- <mce : scriptsrc = jquery.min.jsmce_src = jquery.min.jstype = text/javaScript> </mce : script>
- <MCE : scriptType = text/javaScript> <!-
- //onwindowload.thiswaitsuntilimageshaveled whatisential
- $ (Window) .load (function () {
- // fadeinimagessothereis notacolorpopdocumentload 및 theonwindowload
- $ (. itemimg) .fadein (500);
- // 복제
- $ ( '. itemimg'). 각 (function () {
- varel = $ (this);
- el.css ({위치 : 절대}). 랩 (<divclass = 'img_wrapper'style = display : inline-blockmce_style = display : inline-block>). clone (). addClass ( 'IMG_GRAYSCALE'). CSS ({위치 : 절대 : 절대 : 절대 : z-index : 998, 불투명도 : 0}). insertbefore (el) .queue (function () {
- varel = $ (this);
- el.parent (). css ({너비 : this.width, 높이 : this.height});
- el.dequeue ();
- });
- this.src = grayscale (this.src);
- });
- // fadeimage
- $ ( '. itemimg'). 마우스 오버 (function () {
- .
- })
- $ ( '. img_grayscale'). 마우스 아웃 (function () {
- $ (this) .stop (). 애니메이션 ({불투명도 : 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 코드를 웹 서버에 넣어야합니다.