hvordan skabes der et fantastisk billede preloader

, hvordan man skaber et fantastisk billede preloader,,,,, 2,,,,,,,,, 9,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' ikke glip af, hvor ofte finder man, at billeder i et websted belastning for; den slags, hvor en lastning ikon første synes, og det billede, så forsvinder, når ladt?denne teknik kan i høj grad sætte skub i udførelsen af deres websted.hvis du ikke allerede er bekendt med denne metode, er du heldig!i dag, vil vi skabe en preloader stik af deres projekter.hvad siger du så?lad os komme i gang!,,,, trin 1: oprettelse af deres arbejdsområde, første, vi skal fælde projektet folder for denne forelæsning.We'll need:, ,Our main HTML file,CSS folder for our stylesheet and loading icon ( in 'i' folder),JS folder for jQuery and our plugin,IMAGES, , Step 2: The HTML,We're going to start off with the HTML code., <DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Image Preloader</title> <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="js/jquery.preloader.js"></script> <link rel="stylesheet" href="css/preloader.css" type="text/css" /> </head> <body> <div id="container"> <h2>Preloader - Load images with style</h2> <ul id="gallery" class="clearfix"> <li><p><a href="#"><img src="images/1.jpg" /></a></p></li> <li><p><a href="#"><img src="images/2.jpg" /></a></p> </li> <li><p><a href="#"><img src="images/3.jpg" /></a></p> </li> <li><p><a href="#"><img src="images/4.jpg" /></a></p></li> <li><p><a href="#"><img src="images/5.jpg" /></a></p> </li> <li><p><a href="#"><img src="images/6.jpg" /></a></p> </li> <li><p><a href="#"><img src="images/7.jpg" /><. /a > < /p > < /li > < li > < p > < en href = "#" > < img src = "billeder /8. jpg" /> < /a > < /p > < /li > < li > < p > < en href = "#" > < img src = "billeder /9. jpg" /> < /a > < /p > < /li > < /ul > < /div >, ikke noget særligt her: http: //kode for en enkelt bare et galleri.vi har importeret jquery, vores stik af, jquery.preloader.js (i øjeblikket blanke) og vores preloader er stylesheet.- for at blive færdig, vil vi tilføje en unordered liste, som vil indeholde en liste over poster, som billeder viklet ind i et anker tag (normalt i et websted for at åbne en lightbox eller mellem et anlægsområde).,, konstaterer, at den ekstra, p, tag indpakning hver anker bruges med henblik på ser billedet. ikke udtrykkeligt kræves.,, trin 3: css, nu er vi ved at skabe en, preloader.css, stylesheet i, css, mappe, og i, at skabe en subfolder, det, som vi vil holde vores preloader ikon.preloaders.net har en fin samling af lastning ikoner, du kan vælge imellem.der tilføjes følgende kode til din stylesheet: * {margen: 0; polstring: 0;} organ {baggrund: url (i /bg jpg)}&#container (bredde: 960px; margen: 0px auto;} h2 (font vægt: 100; tekst skygge:&#ffffff 1px 1px 0px; tekst tilpasse: center; polstring: 20px; skriftstørrelsen: 32px; farve:򇨣 grænseoverskridende nederst: 1px knust&#ccc; margen nederst: 30px; skrifttype familie: georgien, "times new roman", gange, serif; den første, vi har skabt, 960px, centreret container, og har tilføjet en baggrunden for den side.desuden har vi tilføjet nogle grundlæggende design til afsnit (, h2, tag).,Styling the Gallery,Next, we'll style the gallery and, while we are at it, throw in some CSS3 goodness., #gallery { list-style:none; } #gallery li { background:#e8e8e8; float:left; display:block; border:1px solid #d7d7d7; -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px; -webkit-box-shadow:1px 1px 6px #ddd; -moz-box-shadow:1px 1px 6px #ddd; box-shadow:1px 1px 6px #ddd; margin:15px 56px; padding:0; } #gallery li p { border:1px solid #fff; -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px; margin:0; padding:7px; } #gallery li a { display:block; color:#fff; text-decoration:none; padding:0; } #gallery img { width:315px; height:210px; margin:0; padding:0; },At dette punkt i vores tilhørerloge skal se sådan her:,,, om oprettelse af den preloader klasse, lad os skabe en, preloader, klasse, der vil være ansvarlig for at vise lastning ikon, mens billeder laster.,. preloader {baggrund: url (i /89. gif) center center, ikke gentager&#ffffff; display: inline - blok), preloader element er, display, ejendom, skal være klar til at blokere, eller i overensstemmelse med blok,; i modsat fald lastning ikon kommer ikke.,, trin 4: et stik af, lad os begynde med at opnå det stik af struktur og muligheder.,,, der giver mulighed for tilpasning muligheder giver et stik af langt mere fleksibel for brugeren.,, vi begynder med den grundlæggende struktur: $. fn.preloader = funktion (muligheder) (var - misligholdelser = {forsinkelse: 200, preload_parent: "a", check_timer: 300 ondone: function() {}, oneachload: funktion (billede) {}, fadein: 500}; //variabler erklæring og precaching billeder og moderselskaber beholder var muligheder = $. udvide (misligholdelser, optioner),}, vores muligheder, forsinkelse - efterfølgende forsinkelse mellem svinder i billeder, preload_parent - tilføje preload klasse til moderselskabet, nævnte.hvis ikke fandt, at billedet er pakket ind i et anker -, ondone - callback til at blive henrettet, når alle de billeder er ladt, oneachload, - - ringede, da hvert billede er fyldt med image som parameter, fadein, - og i animation varighed, løntrin 5: variabler, næste, erklærer vi, og precache de variabler, som vi vil bruge resten af stik af, var misligholdelser = {forsinkelse: 200, preload_parent: "a", check_timer: 300 ondone: function() {}, oneachload: funktion (billede) {}, fadein: 500}; //variabler erklæring og precaching billeder og moderselskaber beholder var muligheder = $. udvide (misligholdelser, optioner), rodfrugter = $(det), billeder = root. finde (img). css ({"synlighed": "skjulte", uklarhed: 0})jas, imødegå = 0, i = 0, checkflag = [], delaysum = muligheder. forsinkelser, for det første precache de grundlæggende element (altid en bedste praksis), så find billederne (også holde dem skjult), og endelig erklære de variabler, som forklaret i detaljer, som vi imødegå dem.der er to ting, værd at bemærke: du kan i første omgang tror, det nemmeste er at gemme billeder, - - og så forsvinder i, snarere end at hoppe igennem hele denne kode.problemet er imidlertid, at hvis vi gemme billeder, - er det rum, de plejede at være tomme, og dermed indretning, i sig selv er rodet op, når de er i sidste ende kom ind.okay, men hvad, hvis vi brugte, uklarhed, at "vis" og "gemme" billeder?det er en bedre praksis, selv om nogle versioner af er ikke kan lide denne metode.,, trin 6: forøgelse af preloader klasse, vi nu vil iterate over hvert billede element, og kontrollere, om dets moderselskab, er den, der er nævnt i den mulighed.hvis vi tilføje vores preloader klasse til det andet, vi afslutter det billede i et anker tagfat med en klasse, preloader,.billeder. hver (function() {var $denne = $(det); hvis ($. moderselskab (options.preload_parent). længde = = 0) ($. bind (< en klasse ='preloader /> ");} andre {$. parent(). addclass (" preloader ")} checkflag [i + +] = falske}); billeder = $. makearray (billeder), her bruger vi et system, checkflag, og at hvert system er punkt værdi, falske.det skal gøres klart, som du videre.,, trin 7: at bringe det alle sammen, må vi nu gennemføre, hvad der faktisk sker bag kulisserne.der er en boolean, ejendom, kaldet, komplet, forbundet med billedet objekt.når billedet er blevet ladt helt, boolean er fastsat til sand.så vi holder kontrol med denne ejendom for hvert billede, og, hvis det er bestemt til, ja, vi forsvinder i det billede, vi kan bruge, setinterval, funktion til konstant at afgøre, om de billeder, er blevet indladet eller ej.det er her, check_timer mulighed kommer: det kort, direkte til vores ven frekvens. et billede har også en, onload, omstændigheder, der er forbundet med det, du tænker sikkert på, hvorfor vi ikke bruger det.grunden er, at nogle browsere ikke godt med den begivenhed, som sådan, vi dropper det.vi har brug for en løsning, der virker på tværs af alle browsere.vi begynder med: lokalitet = function() {timer = setinterval (function() {}}, muligheder. check_timer);,, så er den variable som reference timeren.der er behov for endelig at stoppe uret.denne funktion er angivet sammen med alle de variabler,. at kontrollere hvert billede, vil vi iterate gennem nettet, og tjek hvert billede er fuldstændige, ejendom, for at afgøre, om det er færdig med at downloade.hvis det er blevet downloadet, vi vil sætte det synlige og falmer langsomt.når liv er slut, vi fjerner preloader klasse fra moderselskabet.for (i = 0. jeg < images.length; jeg + +) (hvis (billeder [i]. fuldstændig = = sand) ($(billeder [i]). css ("synlighed", "synlig"). forsinkelse (delaysum). manipulerer ({uklarhed: 1), options.fadein, function() {$(det). parent(). removeclass ("preloader");})), der er et lille problem her: timer vil fortsætte med at se... selv efter, billeder, er alle blevet ladt. for at imødegå dette, vil vi tilføje en tæller variable, og forøgelse af den efter hver image er blevet ladt.på denne måde kan vi kontrollere, om bekæmpelse af variabel er lig med størrelsen af de billeder, vifte.hvis det er tilfældet, så stopper vi., timer = setinterval (function() (hvis (mod > = checkflag. længde) (clearinterval (timer) og muligheder. ondone(); tilbage;} (i = 0. jeg < images.length; jeg + +) (hvis (billeder [i]. fuldstændig = = sand) ($(billeder [i]). css ("synlighed", "synlig"). forsinkelse (delaysum). manipulerer ({uklarhed: 1), options.fadein, function() {$(det). parent(). removeclass ("preloader");}) mod + +)}}, muligheder. check_timer), men der er et lille problem.vores ven kan stoppe tidligere end forventet; hvis et billede er blevet lastet, dens fuldstændige, fast ejendom, er blevet fastsat til ægte, og tæller således forhøjelser af 1.nu, hvor det går den næste gang, billedet er allerede fyldt, fuldstændige, ejendom, der er rigtigt, og derfor - - løber to gange!for at løse dette problem, vi bruger, checkflag, vifte.når et billede er ladt, vil vi, checkflag,,,,, og som betingelse for imod forøgelse kun på betingelse af, at de, checkflag, værdi er falske.så tæller forøges kun én gang: når et billede er lastet for første gang, timer = setinterval (funktion () (hvis (mod & gt = checkflag. længde) (clearinterval (timer) og muligheder. ondone(); tilbage;} (i = 0. jeg & det; images.length; jeg + +) (hvis (billeder [i]. fuldstændig = = sand) (hvis (checkflag [i] = = falske) (checkflag [i] = sandt. muligheder. oneachload (billeder [i]); mod +; delaysum = delaysum + options.delay;} $(billeder - -]). css ("synlighed", "synlig"). forsinkelse (delaysum). manipulerer ({uklarhed: 1), options.fadein, funktion () {%(en). parent(). removeclass ("preloader");})}}}, muligheder. check_timer), bemærker, at vi kalder, ondone, funktion, hvor tælleren flag er større end array - længde - dvs. når alle billeder er ladt.når tælleren forøges, oneachload, kaldes med det nuværende billede vedtaget som parameter.,, trin 8: den nemme del endelig i det, vi kalder den, init();, funktion ved udgangen af stik af., init(); //ringede i sidste linje af stik af, det er alt. vi har foretaget en fuldstændig arbejder preloading stik af, og dens størrelse er mindre end 2kb.men der er stadig et problem: lastning ikon image er ladt tilfældigt.det ønsker vi ikke.i det næste afsnit vil vi tage os af det.,, trin 9: uselviskhed, ordne de problemer, som nævnt ovenfor, vil vi lade den ikon først, og så kalder, lokalitet, funktion.men lastning ikon er en baggrund billede, så vi får det som et billede på den side og at holde det skjult.når den belastning, som vi kalder, lokalitet, funktion.vi er i det væsentlige preloading ikon., var ikon = jquery (< img /> "(id:" loadingicon, src: css /i /89. gif '}). hide(). appendto ("krop"); timer = setinterval (funktion () (hvis (ikon [0]. fuldstændig = = sand) (clearinterval (timer) init(); ikon. remove(); afkast), 100), skaber vi et billede med et objekt, id, af, loadingicon, og en kilde, der peger på vejen til lastning ikon.så, vi sætte det organ, og i første omgang skjule det.endelig har vi fastsat interval for at kontrollere, om de er blevet læsset ikon eller ej.hvis det er det, dræber vi uret, og begynde at preloading billederne.glem ikke at fjerne den ikon.,, konklusion med det sidste skridt, vi er færdige.denne funktion virker i alle browsere som ventet, og nedbryder yndefuldt.bare vær sikker på, der preloader element er, display, ejendom, blokere eller i overensstemmelse med blok.det er nu klar til at blive brugt i deres projekter.tak for det!,

image1



Previous:
Next Page: