Der Zweck dieses Beispiels ist es, Ihnen zu zeigen, wie Sie einen Maus -Suspensionseffekt eines Graustufen-/Farbbildes unter Verwendung von HTML5 und JQuery erstellen. Bevor HTML5 erschien, erforderten das Erreichen dieses Effekts zwei Bilder, farbige und Graustufenversionen. HTML5 erleichtert jetzt das Erstellen dieses Effekts, da graue Bilder direkt aus der Originaldatei generiert werden. Ich hoffe, Sie finden dieses Skript nützlich für Designs wie Display -Schränke oder Fotoalben.
Der folgende JQuery -Code sucht nach dem Zielbild und generiert eine Graustufenversion. Wenn die Maus auf dem Bild suspendiert wird, ändert der Code allmählich das Graustufenbild in die Farbe.
- <mce: scriptSrc = jQuery.min.jsmce_src = jQuery.min.jstype = text/javaScript> </mce: script>
- <MCE: scriptType = text/javaScript> <!--
- //Onwindowload.ThiswaitsuntilImageshaveloaded Welches Dissienential
- $ (Fenster) .load (function () {
- // fadeinimagessothereis nichtAcolorpopdocumentload und thenonWindowload
- $ (. itemimg) .fadein (500);
- // Cloneimage
- $ ('. itemimg'). Jede (Funktion () {
- varel = $ (this);
- EL.CSS ({Position: Absolute}). Clone (). AddClass ('img_grayscale'). CSS ({Position: Absolute, Z-Index: 998, Opazität: 0}).
- varel = $ (this);
- El.Parent (). CSS ({width: this.width, Höhe: this.height});
- El.Dequeue ();
- });
- this.src = grayscale (this.src);
- });
- // Fadeimage
- $ ('. itemimg'). mouseover (function () {
- $ (this) .Parent (). Find ('img: First'). Stop (). Animate ({Opazität: 1}, 1000);
- })
- $ ('. img_grayscale'). Mouseout (function () {
- $ (this) .Stop (). Animate ({Opazität: 0}, 1000);
- });
- });
- // Greyscalewcanvasethod
- FunktionStraysCale (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);
- für (vary = 0; y <imgpixel.Height; y ++) {
- für (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>
Wie man benutzt * Zitat jQuery.js
* Fügen Sie den obigen Code ein
* Legen Sie das Zielbild fest (z.
* Sie können die Geschwindigkeit der Animation ändern (z. B. 1000 = 1 Sekunde)
Kompatibilität Kann an jedem Browser arbeiten, der HTML5 und JavaScript unterstützt, wie Chrome, Safari und Firefox. Wenn der Browser HTML5 nicht unterstützt, fällt dieser Effekt auf das ursprüngliche Farbbild zurück. Hinweis: Wenn die lokale Datei nicht auf Firefox und Chrome funktioniert, müssen Sie den HTML -Code auf einen Webserver einfügen.