uit beeld is, hoe te komen tot een goede beelden uit het plug - in het tweede deel,,,,,,,,, uitwisseling van aandelen, 26,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts 3 dollar.Niet' niet missen.,,,,, de webapplicatie moeten uploaden en het manipuleren van rijke inhoud die makkelijk op te lossen.Dit proces kan voor een paar foto 's van de gebruikers ten minste de redactionele vaardigheden tot moeilijkheden.Het is een van de meest gebruikte technologie voor de verwerking van de foto 's, en deze stap voor stap handleiding zal het voor beeld in het hele proces van ontwikkeling: javascript.,,,,, een snelle herziening van de handleiding voor, bekijken we hoe uitgebreid dit:,,, hoe kan een plug - in - een grotere flexibiliteit in het gebruik van speciale optie, het creëren van fundamentele beeld - toepassing, vandaag, we nemen verdere dingen om ons van de « plugin »: kunnen we meer opties toe te voegen aan de definitie van de gewoonte om de keuze van een auditie, en slepen, maat, de oprichting van een voorproefje van Wat de omvang van de ruit en schrijven voor servers, de beelden van de stappen.. 1: nog meer opties open, jquery.imagecrop.js, de bestanden zich /resources /JS /imagecrop /,- toevoeging van de volgende code:, de VAR - default option = {allowmove. Echt, allowresize. Echt, echt, allowselect: dan: 0, displaypreview: valse, displaysizehint: valse, minselect:[0, 0], minsize:[0, 0], [0] 0, voor outlineopacity:0.5 overlayopacity:0.5, previewboundary:90:,,, previewfadeonblur:1, previewfadeonfocus:0.35 selectionposition:[0, 0, 0, selectionheight:/], selectionwidth:0, /« de verandering van de gebeurtenis: functie () {}, onselect:function () {}}; we meer keuze en veranderingen, en twee, onselect call - back -,,.Deze twee kunnen opvragen plug - in staat is zeer nuttig., keuze, hier is een snelle vervallen we optie:,,,, - welke keuze dan (standaard 0,),,, displaypreview, geen zichtbaar is of niet - gespecificeerde preview (standaard is, vrij.), de omvang van displaysizehint,, - aangewezen is de zichtbare of onzichtbare (standaard is nep,), minsize, welke keuze, de minimale omvang (het standaard is, [0, 0]), voor de aanwijzing van de keuze van de maximale omvang, (standaard [is], 0, 0,),, previewboundary preview van de omvang van de ruit, aangewezen (standaard is 90), aangewezen, previewfadeonblur preview ruit, Fuzzy niet transparantie (D1), -EFAULT waarde, previewfadeonfocus, focus niet aangewezen de preview ruit transparantie (standaard is, oncahnge 0,35,), plug - in staat was veranderd, terug, terug, onselect, plug - in staat was om een keuze te maken, stap 2: nog meer lagen, in dit stadium, we voegen meer laag.Laten we beginnen met de en de omvang van de tip. En...///////- een achtergrond van de omvang van het laag, laag boven de keuze sizehintbackground = $/(var. "$" < div = "beelden om afmetingen impliceert dat de achtergrond" /> "({). Geen transparantie: 0,35. Positie:" absolute "}) (.); ///////- de vooruitzichten voor de grootte van een laag als het sizehintforeground /achtergrond laag =% (var." $"< span id =" beeld dat vooruitzicht om omvang "/>" ({). Positie: "absolute"}). InsertAfter ($sizehintbackground), hebben we nog twee. Een aparte laag, omdat we niet willen dat de vooruitzichten van de achtergrond van de invloed van de transparantie, en nu zullen we nog negen lagen:Procedures voor de behandeling van een aanpassing van de omvang van. En...///////- een Noord - West tot aanpassing van de behandeling als het laag nwresizehandler = $/(var. "$" < div = "beelden aan het" = "beelden van aanpassing van de behandeling van gewassen of" /> "({). Geen transparantie: 0,5, positie: absolute"}). InsertAfter ($); ///////- een Noord - aanpassing van de behandeling als het nresizehandler keuze /laag =% (var. "$" < div = "beelden aan het" = "image-crop-n-resize-handler" /> "({). Geen transparantie: 0,5, positie:" absolute "}) ($). InsertAfter; ////////- een Noord - Oost - aanpassing van de behandeling als het laag neresizehandler dollar /Keuze var.= $("< div =" beelden aan het "=" beeld gewassen ne aanpassingen van de verwerking van "/>"). ({geen transparantie: 0,5, positie: "absolute"}). InsertAfter ($); ///////- een West - aanpassing van de behandeling, het gekozen boven /laag wresizehandler = $(var. "$" < div = "beelden aan het" = "image-crop-w-resize-handler" /> "({). Geen transparantie: 0,5, positie:" absolute "}). InsertAfter ($); ///////- een aanpassing van de behandeling en het Oosten boven de keuze /laag eresizehandler = $(var." $"< div =" beelden aan het "=" image-crop-e-resize-handler "/> CSS (}).Zonder transparantie: 0,5, positie: "absolute"}). InsertAfter ($); ////////Zuid - West - een aanpassing van de behandeling, de keuze van het op de swresizehandler /=% (var. $laag < div = "beelden aan het" = "beelden van software aan" /> "). ({geen transparantie: 0,5, positie:" absolute "}). InsertAfter ($); ///////- een aanpassing van de behandeling van het zuiden, de keuze van de sresizehandler = /laag boven $(var." $"< div =" door aanpassing van de identiteit van de behandeling van het beeld "=" image-crop-s-resize-handler "/>"). ({geen transparantie: 0,5, positie: "absolute"}). InsertAfter ($);////////- een Zuid - Oost - aanpassing van de behandeling als het laag seresizehandler = $/(var. "$" < div = "beelden aan het" = "beeld aan gewassen se />"). ({geen transparantie: 0,5, positie: absolute "insertAfter (}). We starten een selectie van); aanpassing van de partijen in elke hoek van verwerking en, tot slot, de preview ruit. En...///////- een preview en het profiel laag dollar = dollar previewholder var ("< div =" beelden bekijken "/>" ({). Options.previewfadeonblur, transparantie: niet -: de verborgen, positie: "absolute"}). InsertAfter ($profiel); ///////- een preview van beelden en die moeten worden toegevoegd aan de preview preview = $(var. "$" < IMG (= "de preview" = "beelden bekijken" /> "({). Positie:" absolute "}).Attr ('src, $beeld.Attr ('src appendto"). ($previewholder); twee lagen, we starten:,, man, als een masker, beelden, met dezelfde, "en, als de originele beelden.We gebruiken,,,. Appendto (), in de marge van de methode is ingevoegd in de preview beeld.,, stap 3: versterking van de interface, ten eerste, zullen we de toevoeging van twee nieuwe variabelen. En...///////- van de variabelen var resizehorizontally = waar resizevertically = waar selectionexists, selectionoffset = [0] = [selectionorigin, 0, 0, 0]; deze variabelen, moeten we, als we te actualiseren, resizeselection (), functie, in het eerste deel, wij alleen, allowselect, opties.Laten we om te allowresize, allowmove,,,.,...Als (optie. Allowmove) /bindende van een gebeurtenis die de keuze van de mousedown gebeurtenissen keuze dollar. Mousedown (pickselection); als (optie. Allowresize) /bindende van een gebeurtenis die mousedown gebeurtenissen (aanpassing van de procedures voor de behandeling van'div.image-crop-resize-handler dollar). Mousedown (pickresizehandler); en we hebben besloten, mousedown De keuze en de aanpassing van de behandeling, de incidenten, en nu moeten we de code schreef de vernieuwing van onze meer op een toename van nieuwe laag. En...De omvang van de functie van ///////vernieuwing van het updatesizehint (acties) {schakelaars (actie) (zaak C - "verdwijnen": ///////uit de omvang van sizehintbackground dollar. Verdwenen (langzaam); sizehintforeground dollar. Verdwenen (langzaam); schuld; standaard: var = (selectionexists & & opties. De omvang van het scherm)? "Blok: "geen"; ///////actualisering van $sizehintforeground vooruitzicht lagen. De CSS ({toe: "standaard", blijkt dat dat links: opties. Selectionposition [0] + 4, op de Top van de opties. Selectionposition [1] + 4 (}). Options.selectionwidth + x + opties. Selectionheight); ///////de achtergrond. Sizehintbackground dollar. - {toe: "standaard", blijkt dat dat links: opties. Selectionposition [0] + 1, op de Top van de opties. Selectionposition [1] + 1}) de breedte (sizehintfor dollar.Eground. Breedte (+ 6), de hoogte (sizehintforeground dollar. Lengte (+ 6);}};,, updatesizehint (twee gevallen), voor de behandeling van in het kader van de functie van de gespecificeerde parameters., als er geen standaard gedrag is aangewezen, dat de omvang en bijgewerkt (als de keuze van bestaan).De tweede is te vervagen, de acties.Dit zal de voltooiing van de aanpassing van de keuze voor de gebruiker op stap.,,, we starten de sortering aan.Nu zullen we ze in de juiste positie. En...///////opnieuw verwerkt updateresizehandlers (acties) {schakelaars (actie) (zaak C - "verborgen": $(". Het beeld van gewassen aan"), elke (functie) (% (dit). ({vertonen: "geen"});}); de schuld; Standaard: var display = (selectionexists & & opties. Allowresize)? "Blok: geen; nwresizehandler dollar. - {toe: "- de omvang, de show zien, links: opties. Selectionposition [0] wiskunde. Ronde (nwresizehandler dollar. Breedte () /2), de Top van de opties. Selectionposition [1] wiskunde. Ronde (nwresizehandler lengte () /2 dollar.)}); nresizehandler dollar. - {toe:" n-resize "blijkt dat de display, links: opties. Selectionposition [0] + wiskunde. Ronde (options.selectionwidth /2 neresizehandler dollar. De breedte (1) /2), de top: opties. Selectionposition [1] wiskunde. Ronde (neresizehandler lengte ($/2).)));Neresizehandler dollar. - {cursor: Ne de omvang, de show zien, links: opties. Selectionposition [0] + options.selectionwidth wiskunde. Ronde (neresizehandler dollar. De breedte (1) /2), de top: opties. Selectionposition [1] wiskunde. Ronde (neresizehandler dollar. Lengte () /2)}); wresizehandler dollar. - {toe: "w-resize" blijkt dat de display, links: opties. Selectionposition [0] wiskunde. Ronde (neresizehandler dollar. Breedte () /2), de Top van de opties. Selectionposition [1] + wiskunde. Ronde (options.selectionheight /2 neresizehandler dollar. Lengte () /2) - 1}); eResizehandler. De CSS ({toe: "e-resize" blijkt dat de display, links: opties. Selectionposition [0] + options.selectionwidth wiskunde. Ronde (neresizehandler dollar. De breedte (1) /2), de top: opties. Selectionposition [1] + wiskunde. Ronde (options.selectionheight /2 neresizehandler dollar. Lengte () /2) 1}); swresizehandler dollar. - {toe: "de omvang van dat software, blijkt dat van links: opties. Selectionposition [0] wiskunde. Ronde (swresizehandler dollar. Breedte () /2), de Top van de opties. Selectionposition [1] + options.selectionheight wiskunde. Ronde (swresizehandler Lengte () /2 dollar. - 1)}); sresizehandler dollar. - {toe: "s-resize" blijkt dat de display, links: opties. Selectionposition [0] + wiskunde. Ronde (options.selectionwidth /2 seresizehandler dollar. De breedte (1) /2), de top: opties. Selectionposition [1] + options.selectionheight wiskunde. Ronde (seresizehandler dollar. Lengte () /2) 1}); seresizehandler dollar. - {toe: "de omvang van dat zelf, dat links: opties. Selectionposition [0] + options.selectionwidth wiskunde. Ronde (seresizehandler dollar. De breedte (1) /2), de top: opties. Selectionposition [1] + options.selectionheight -Wiskunde. Ronde (seresizehandler dollar. Lengte () /2) - 1);}}};, vergelijkbaar met die van vorig jaar, de functie, updateresizehandlers (), test 2 gevallen, alle verborgen en de standaard.In het eerste geval, dat noemen we het. Elke (), de herhaalde met de methode van de elementen, laten we tot de updatepreview (),,.,...///////update preview updatepreview (acties) {schakelaars (actie) (zaak C - Focus: ///////- preview laag previewholder dollar. Stop (). De animatie ({geen transparantie: options.previewfadeonfocus}); breuk; zaak "Fuzzy": ///////- preview laag previewholder dollar. - stop CARTOON ((). {}); transparantie: niet options.previewfadeonblur breuk; zaak "verborgen'://verborgen preview laag previewholder dollar. - {}; geen breuk); de standaard:Var = (selectionexists & & opties. Displaypreview)? "Blok: "geen"; ///////bijwerking van de preview laag previewholder dollar. - {weergave: display, links: opties. Selectionposition [0], op de Top van de opties. Selectionposition [1] + options.selectionheight + 10}); ///////bijwerking van de preview omvang als (options.selectionwidth > opties. Selectionheight) {als (options.selectionwidth% AMP%; & opties. Selectionheight) {///////actualisering van de omvang van de preview voor beeld bekijken. Breedte (wiskunde. Ronde (beelden). De breedte (* * * * * * * options.previewboundary /opties. Selectionwidth); $preview. Hoogte (wiskunde. Ronde (beeld. Lengte (*) $W bekijken.(de) idth dollar /beeld. Breedte ()) ///////); bijwerking van de preview voor de omvang van de dollar laag previewholder. Breedte (optie. Previewboundary). De hoogte (wiskunde. Ronde (options.selectionheight * $preview. Lengte () USD /beeld. Lengte ()));}} {als andere (options.selectionwidth & & opties bekijken. Selectionheight) {///////actualisering van de omvang van de hoogte van het beeld voor de preview. (wiskunde. Ronde (beeld. Lengte (*) options.previewboundary /opties. Selectionheight); $preview. Breedte (wiskunde. Ronde (beelden). De breedte (* * * * * * * - preview. De hoogte (hoogte) USD /beeld. ()) ///////); de omvang van de bijwerking van de preview voor laag, pre -Viewholder. Breedte (wiskunde. Ronde (options.selectionwidth * $preview. Breedte () USD /beeld. Breedte ())). De hoogte (optie. Previewboundary);}} ///////de positie van de bijwerking van de preview beeld $bekijken. - {links: wiskunde. Ronde (optie. Selectionposition [0] * euro /dollar breedte () de preview. Beeld. Breedte ()), de top: wiskunde. Ronde (optie. Selectionposition [1] * $preview. Lengte () USD /beeld. Lengte ())});}}; in drie gevallen, vóór de code moet voor zichzelf.Dat noemen we het. Animate (), de uitvoering van een eigenschap van een animatie van de methode van de CSS.We besloten dat, waarde en de positie van de houder, de preview.Toen we de omvang van de preview beeld passen, previewboundary, de keuze van de locatie en de berekening van de nieuwe, we moeten worden bijgewerkt, updatecursor (), functionele ook. En...Actualisering van de functie van een type ///////updatecursor (formaat) {% trekker. De CSS ({cursor: staat goed cursortype}); en ({cursor: staat goed cursortype profiel. De CSS}); een selectie van. De CSS ({cursor: staat goed cursortype}); sizehintbackground dollar. De CSS ({cursor: staat goed cursortype}); sizehintforeground CSS dollar. ({toe: het staat goed cursortype}}); en nu,,, een stap die de laatste functie. En...///////- interface ontspannen na bijwerking van de MAP (afzender) {schakelaars (afzender) (zaak setselection ": updateoverlaylayer () (); updateselection; updateresizehandlers ('hide-all"); updatepreview ('hide "); de schuld; zaak pickselection": updateresizehandlers ('hide-all "); de schuld; Zaak pickresizehandler": updatesizehint (); updateresizehandlers ('hide-all "); de schuld; zaak resizeselection": updateselection () (); updatesizehint; updateresizehandlers ('hide-all "); updatepreview (); updatecursor ('crosshair");Het moveselection; zaak ": updateselection (); updateresizehandlers ('hide-all"); updatepreview (); updatecursor ('move "); de schuld; zaak releaseselection": updatetriggerlayer () (); updateoverlaylayer; updateselection (); updatesizehint ('fade-out "); updateresizehandlers () (); updatepreview; schuld; updatetriggerlayer (standaard:); updateoverlaylayer () (); updateselection; updateresizehandlers () (); updatepreview;}};,, stap 4: de versterking van setselection (,,), zullen we nog een ding.Hier: de preview ruit steun. En...///////de instelling van een nieuwe functie (event) {///////setselection voorkomen bij het gedrag van de gebeurtenissen. Preventdefault (); ///////om te voorkomen dat de kennisgeving van gebeurtenissen. Stoppropagation (); ///////binden aan een gebeurtenis mousemove gebeurtenissen $(document). Mousemove (resizeselection); ///////verwerker binden mouseup in geval van $(document). Mouseup (releaseselection); ///////indien mogelijk als blijkt dat de twee opties (optie. Displaypreview) {///////een gebeurtenis te binden "MouseEnter gebeurtenissen preview /houder previewholder dollar. MouseEnter (functie) (updatepreview ('focus');}); ///////binden aan een gebeurtenis mouseleave gebeurtenissenIn de preview /houder previewholder dollar. Mouseleave (functie) (updatepreview ('blur ");});} ///////selectionexists = waar het bestaan van kennisgeving te kiezen; ///////- kiezen voor de omvang van options.selectionwidth = 0; options.selectionheight = 0; ///////de keuze van de bron wordt een selectionorigin = getmouseposition (gebeurtenissen); ///////de locatie kiezen. Selectionposition [0] = selectionorigin [0]; opties. Selectionposition [1] = selectionorigin [1]; ///////actualisering van de elementen van de interface nodig alleen /« het aanwijzen van de huidige oplossing na een map met de afzender ('setselection");}; we hebben getest, displaypreview.Met mouseenter (),,.,. Mouseleave (), de functie van gebeurtenis aan de preview.,, salaristrap 5: kiezen, laat de keuze van slepen, we moeten afleiden als de gebruikers van mobiele en de vrijlating van de muis. En...Kies de huidige functie van //////////////pickselection (gebeurtenissen) {voorkomen bij het gedrag van de gebeurtenissen. Preventdefault (); ///////om te voorkomen dat de kennisgeving van gebeurtenissen. Stoppropagation (); ///////binden aan een gebeurtenis mousemove gebeurtenissen $(document). Mousemove (moveselection); ///////verwerker binden de gebeurtenissen mouseup gebeurtenissen. (document). Mouseup (releaseselection); var mouseposition = getmouseposition (gebeurtenissen); ///////de positie ten opzichte van de selectie van de muis. Selectionoffset [0] = mouseposition [0] optie. Selectionposition [0]; selectionoffset [1] = mouseposition [1] optie. Selectionposition [1]; ///////actualisering van de elementen moet alleen plug - in -De huidige oproep na de CE /aangewezen bij de map van de afzender ('pickselection ");}; bovendien hebben we een keuze van de afwijking ten opzichte van de locatie van de muis.We moeten het in de moveselection (na),,,, stap 6: aanpassing van de behandeling en de gebruikers in staat zal zijn de keuze van procedures voor de behandeling van de aanpassing en de aanpassing van slepen.Dit kan op twee manieren worden gedaan: in twee assen, als de gebruiker vanuit een hoek of in een as met een procedure, als de gebruiker kiest met een procedure in het midden van een kant. En...///////kiezen voor een aanpassing van de behandeling pickresizehandler (gebeurtenissen) {///////de functie bij het gedrag van de gebeurtenissen te voorkomen. Preventdefault (); ///////om te voorkomen dat de kennisgeving van gebeurtenissen. Stoppropagation (); - (gebeurtenissen. De doelstellingen. ID) (zaak selectionorigin aanpassing voor de behandeling van gewassen of beeld: [0] + [1 selectionorigin = options.selectionwidth;] + = options.selectionheight; opties. Selectionposition [0] = [0] - selectionorigin options.selectionwidth; opties. Selectionposition [1] = selectionorigin [1] - options.selectionheight; breuk; zaak image-crop-n-resize-handler ": selectionorigin [1] + = options.selectionheight; optiesS.selectionposition [1] = selectionorigin [1] - options.selectionheight; resizehorizontally = valse; schuld; zaak van de aanpassing van de behandeling: het beeld van ne selectionorigin [1] + = options.selectionheight; opties. Selectionposition [1] = selectionorigin [1] - options.selectionheight; breuk; zaak image-crop-w-resize-handler ": selectionorigin [0] + = options.selectionwidth selectionposition; opties. [0] = [0] - selectionorigin options.selectionwidth; resizevertically = valse; breuk; zaak image-crop-e-resize-handler": resizevertically = vals; zaak image-crop-sw-r schuld;Esize verwerking ": selectionorigin [0] + = options.selectionwidth; opties. Selectionposition [0] = [0] - selectionorigin options.selectionwidth; breuk; zaak image-crop-s-resize-handler": resizehorizontally = vals; breken;} ///////binden aan een gebeurtenis mousemove gebeurtenissen $(document). Mousemove (resizeselection); ///////binden aan een een gebeurtenis die mouseup gebeurtenissen $(document). Mouseup (releaseselection); ///////actualisering van de elementen van de interface nodig alleen /« het aanwijzen van de huidige na bij de afzender op de MAP ('pickresizehandler ");};, we schrijven een Aanpassing van de situatie van elke behandeling, omdat iedereen de vraag specifiekC.,, stap 7: versterking van resizeselection (,,,), verschilt van de eerste versie van resizeselection (), zullen worden getest in de keuze van de grootte van de minimum /maximum - en sluit dan. En...///////aan te passen aan de selectie van de functie van de resizeselection (gebeurtenissen) {///////voorkomen bij het gedrag van de gebeurtenissen. Preventdefault (); ///////om te voorkomen dat de gebeurtenissen in kennis van het incident. Stoppropagation (); de VAR - mouseposition = getmouseposition (gebeurtenissen); ///////de omvang van een hoge mate van toegang tot de keuze van de var = mouseposition [1] - selectionorigin [1], breedte = mouseposition [0] - [0] selectionorigin; ///////afmetingen kleiner zijn dan de minimummaat vastgesteld als de keuze van /dus als (wiskunde. ABS (breedte) < opties. Minsize [0] (breedte), breedte = > = 0).De opties. Minsize [0]: kiezen. Minsize [0]; als (wiskunde. ABS (hoge) < opties. Minsize [1]) hoogte = (lengte > = 0).De opties. Minsize [1]: kiezen. Minsize [1]; ///////test als kiezen voor de omvang van de grens buiten beeld als (selectionorigin [0] + breedte < 0
Het creëren van een plug - in het
Previous:De beste manier om te leren.
Next Page:Hoe