Fremdriftslinjen er en av de nyeste komponentene som skal legges til det utmerkede biblioteket med UI-widgets og interaksjonshjelpere som er bygd på toppen av jQuery. Det ble introdusert i den nyeste versjonen av biblioteket, som på skrivetidspunktet er 1,7.
Fremdriftslinjen er for tiden bare avgjørende, noe som betyr at når vi oppdaterer det, må vi fortelle det eksplisitt hva verdien er, og vi må vite på forhånd når prosessen den brukes til å måle fullfører. Denne widgeten er for øyeblikket ikke det beste valget for en prosess som vil ta en ubestemt tid å fullføre.
Det er en veldig enkel widget med en liten API som eksponerer et begrenset antall egenskaper og metoder, men det kan fortsatt være svært effektivt og er flott for å gi visuell tilbakemelding til besøkende på prosentsatsen av en prosess er igjen før den er fullført.
Vi trenger en kopi av den nåværende versjonen av jQuery UI, som kan hentes fra nedlastningsbyggeren på http://jqueryui.com/download. Når vi har lastet ned den, må vi pakke ut den slik at den eksisterende katalogstrukturen er bevart. Vi bør opprette en ny katalog på vår datamaskin kalt jQuery UI, og deretter inn i dette oppretter du en ny mappe som heter jqueryui1.7. Arkivet skal da pakkes ut til mappen jqueryui1.7.
Arkivet inneholder alt vi trenger for å komme i gang; minifiserte og ukomprimerte versjoner av alle biblioteksfilene, noen temafiler (standardtemaet er den riktige navngitte smidigheten), og til og med den nyeste versjonen av det underliggende jQuery-biblioteket.
Fremdriftslinjen er avhengig av en rekke filer for å fungere; Disse er oppført nedenfor i den rekkefølgen de skal legges til på vår side:
De tre første filene er en del av det omfattende CSS-rammeprogrammet og brukes til å gi fremdriftslinjen sitt distinkte utseende. Vi trenger ikke å holde fast i dette temaet i en real-world implementasjon; Vi har mange muligheter for tilpasning, inkludert et stort antall forhåndsdefinerte temaer som er tilgjengelige direkte fra Themeroller, et tilpasset tema vi kan designe oss selv ved hjelp av Themeroller, eller til og med et tilpasset tema vi lager manuelt av overordnede regler definert i standard stilark. Vi vil ikke gjøre noe av disse tingene i denne opplæringen, men vi kan gjøre bruk av noen av klassene som er gitt av rammen.
Svært lite underliggende markering er nødvendig av denne widgeten; alt vi trenger, i tillegg til bibliotekets ressurser nevnt ovenfor, er et enkelt beholderelement. I tekstredigeringsprogrammet lager du følgende sideskall med de nødvendige ressursene og beholderelementet:
jQuery UI Progress Bar
Lagre dette som progressBar.html i roten jQuery UI-katalogen. Vi stiller stilarkene rett ved starten av filen og skriptene rett på slutten; Dette er av ytelsesmessige årsaker som sider laster innholdet raskere når de ikke prøver å laste inn JavaScript samtidig. Dette er en godt dokumentert ytelsespraksis som er best ivaretatt. Vi har forlatt en tom skriptetikett nederst på siden; la oss legge til koden der neste:
$ (funksjon () // ring fremdriftslinjekonstruktor $ ("# container"). progressbar (););
For å initialisere standard fremdriftslinje, er alt vi gjør, kaller sin konstruktormetode, fremdriftslinje, på beholderelementet som widgeten skal gjengis inn i. Når du kjører denne siden i nettleseren din, bør du se at fremdriftslinjen er opprettet og fyller automatisk bredden på beholderen, som i dette tilfellet er kroppens side:
Fremdriftslinjens verdi vil bli satt til null som standard, og derfor vises det tomt i forrige skjermbilde. For å fylle fremdriftslinjen, må vi sette verdien egenskapen; endre konstruktørfunksjonen slik at den ser ut som følger:
// Call Progressor Constructor $ ("# Container"). Progressbar (verdi: 50);
Verdiendommen bestemmer prosentandelen av fremdriftslinjen som er fylt, noe som gir god visuell tilbakemelding til den besøkende om hvor mye av oppgaven som er igjen for å fullføre. Fremdriftslinjen skal nå være halvt fylt, som i følgende skjermbilde:
Å få gjeldende verdi av widgeten er like enkelt som det var å sette det; Vi kan bruke en av metodene sine til å returnere gjeldende verdiegenskap. Etter den første konstruktøren legger du til følgende kode:
// sett mouseover for fremdriftslinjen
$ ("# container"). mouseover (funksjon () // viser nåværende verdi $ ("") .attr (" id "," prosentandel "). tekst ($ (" # container "). progressbar (" alternativ "," verdi ") +"% fullført " ; // set mouseout for fremdriftslinje $ ("# container"). mouseout (funksjon () // skjul verdi $ ("# prosent"). fjern (););
Vi har lagt til to enkle anonyme funksjoner som utløses på mouseover- og mouseout-hendelsene som skyves av fremdriftslinjen (merk at disse er standard DOM-hendelser, ikke tilpassede fremdriftsbegivenheter). Alt vi gjør i den første funksjonen, er å lage et nytt avsnitt med gjeldende verdi av fremdriftslinjen som sin indre tekst og legge den til siden.
Verdien hentes ved hjelp av alternativmetoden. Argumentet som går til metoden, er navnet på eiendommen vi ønsker å hente. Den andre funksjonen fjerner meldingen igjen. Meldingen vises i følgende skjermbilde:
Verdiendommen eller alternativet er for tiden den eneste konfigurerbare egenskapen til fremdriftslinjen; I dette eksemplet angir vi det når widgeten initialiseres ved å sende den inn som egenskapen til et konfigurasjonsobjekt. For å sette denne egenskapen etter at widgeten er initialisert, bruker vi alternativmetoden. For å bruke denne metoden i setter-modus, må vi passere i en andre parameter som angir den nye verdien, slik:
fremdriftslinje ("alternativ", "verdi", 75)
Du lurer kanskje på hvorfor jeg sa "en andre parameter" når det er klart at det er tre argumenter i linjen ovenfor. Selv om vi bruker alternativmetoden, kaller vi det ikke direkte. I stedet kaller vi konstruktormetoden igjen, men forteller at vi ønsker å ringe alternativmetoden. Widgeten vil kalle metoden internt, og passere de to parametrene ("verdi" og 75) som vi sender til konstruktøren etter metodenavnet.
Fremdriftslinjen viser en enkelt hendelse, endringshendelsen, som gir en mekanisme for at vi skal koble inn slik at vi kan svare på endringer i verdien. Dette er en tilpasset hendelse, slik at vi kan oppdage og reagere på det på to forskjellige måter. Vi kan definere en anonym funksjon som verdien av endringsegenskapen i et konfigurasjonsobjekt, som vi gjorde med verdiegenskapen, eller vi kan bruke jQuery's bindemetode for å angi den anonyme funksjonen som skal utføres. En subtil forskjell mellom de to er at koden spesifisert ved hjelp av bindemetoden vil bli utført først.
Programmet for fremdriftsfelt viser fem metoder, som er oppført nedenfor:
Alle disse metodene brukes på nøyaktig samme måte som alternativmetoden vi har sett på; ved å ringe konstruktormetoden som angir navnet på metoden og eventuelle parametere som vi ønsker å passere inn. De fleste av disse skal være ganske selvforklarende.
Dette eksemplet så langt har vært veldig grunnleggende, for de av dere som kanskje ikke har brukt jQuery UI i det hele tatt før. La oss sette opp ting litt og sette sammen noe som nærmer oss den typen ting vi kan gjerne gjøre i en riktig implementering. Dette eksemplet vil også være grunnleggende, men det bør gi en mye bedre ide om hvordan widgeten kan gjøres for å fungere for oss. Vår ferdige side vil se slik ut:
Start med følgende underliggende side i en ny fil i teksteditoren:
jQuery UI Progress Bar Registreringsskjema
Framgang: