Цель этого примера состоит в том, чтобы показать вам, как создать эффект подвески мыши из серого изображения/цвета с использованием HTML5 и jQuery. Перед появлением HTML5 для достижения этого эффекта потребовалось два изображения, цветные и серые версии. HTML5 теперь делает создание этого эффекта проще и более эффективным, поскольку серые изображения будут генерироваться непосредственно из исходного файла. Я надеюсь, что вы найдете этот сценарий полезным в таких дизайнах, как дисплей или фотоальбомы.
Следующий код jQuery будет искать целевое изображение и генерировать версию серого. Когда мышь приостановлена на изображении, код постепенно изменяет изображение серого на цвет.
- <mce: scriptsrc = jquery.min.jsmce_src = jquery.min.jstype = text/javascript> </mce: script>
- <mce: scripttype = text/javascript> <!-
- //Onwindowload.thiswaitsuntilimagesheshaveloaded
- $ (window) .load (function () {
- // FadeInimagesSothereis notacolorpopdocumentload и затем загрузка
- $ (. ITEMIMG) .FADEIN (500);
- // клонимаж
- $ ('. itemimg'). ealh (function () {
- varel = $ (это);
- el.css ({position: absolute}). wrap (<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 = $ (это);
- el.parent (). css ({width: this.width, высота: this.height});
- el.dequeue ();
- });
- this.src = greyscale (this.src);
- });
- // FadeImage
- $ ('. itemimg'). mouseover (function () {
- $ (this) .parent (). find ('img: First'). Stop (). Animate ({opacity: 1}, 1000);
- })
- $ ('. img_grayscale'). Mouseout (function () {
- $ (this) .stop (). Animate ({opacity: 0}, 1000);
- });
- });
- // greyscalewcanvasmethod
- 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: script>
Как использовать * Цитата jQuery.js
* Вставьте приведенный выше код
* Установите целевое изображение (например.
* Вы можете изменить скорость анимации (например, 1000 = 1 секунда)
совместимость Может работать над любым браузером, который поддерживает HTML5 и JavaScript, такой как Chrome, Safari и Firefox. Если браузер не поддерживает HTML5, этот эффект вернется к исходному цветному изображению. Примечание. Если локальный файл не работает на Firefox и Chrome, вы должны поместить HTML -код на веб -сервер.