L'interfaccia utente di JQuery può aggiungere così tanto a una pagina web. Ci sono molti diversi widget forniti dall'interfaccia utente. Una stella alta e futura, è il cursore. In questo tutorial, ti mostrerò come utilizzare un dispositivo di scorrimento per controllare le dimensioni del testo di un articolo su una pagina. Ciò consente all'utente di controllare esattamente le dimensioni adatte a loro, ed è anche una caratteristica piuttosto impressionante da avere su un sito!
La parte del cursore di questo tutorial riproduce una tecnica originariamente creata da Buck Wilson.
Alla fine vorremmo che la nostra pagina assomigli a qualcosa del genere:
Comportamento:
Ovviamente abbiamo bisogno di JQuery, ma avremo anche bisogno di alcuni file UI per estendere JQuery. Possiamo ottenere un file dell'interfaccia utente personalizzato per le nostre esigenze nell'interfaccia utente di JQuery Build Your Download.
Come puoi vedere, ci sono degli effetti sonori davvero eccezionali! Per quanto allettante possa essere, non abbiamo bisogno di tutti questi effetti per ottenere il prodotto desiderato. Tutto ciò di cui abbiamo bisogno è:
Per questo tutorial, non ho intenzione di perdere tempo spiegando le basi dell'HTML e creando un layout che lo usa e CSS. Se vuoi saperne di più su questo argomento, qui ci sono altre esercitazioni come la mia esercitazione su Pannello superiore o il tutorial Contenuto schede a Collis.
Nettuts Slider Slider di dimensioni del testo
Dimensione corrente del carattere:Lorem Ipsum è semplicemente un testo fittizio dell'industria della stampa e della composizione. Lorem Ipsum è stato il testo fittizio standard del settore sin dal 1500, quando una stampante sconosciuta ha preso una cambusa di tipo e l'ha codificata per creare un libro esemplificativo di tipo. È sopravvissuto non solo a cinque secoli, ma anche al salto nella composizione elettronica, rimanendo sostanzialmente invariato. È stato reso popolare negli anni '60 con la pubblicazione di fogli Letraset contenenti brani di Lorem Ipsum e, più recentemente, con software di desktop publishing come Aldus PageMaker che include versioni di Lorem Ipsum.
Quindi noterai diverse cose:
NOTA: per far funzionare il cursore, abbiamo bisogno di una barra e una maniglia.
Ecco il CSS per rendere quella pagina un po 'migliore. Questa pagina è piuttosto semplice, quindi il CSS è piuttosto semplice:
body background: # 373737; allineamento del testo: centro; margine: 0px; #header width: 700px; altezza: 200 px; background: # 48887d url (images / header.jpg); margin-left: auto; margin-right: auto; posizione: relativa; .slider_container position: absolute; altezza: 25px; superiore: 170 px; a sinistra: 165 px; .minus background: url (images / minus-trans.png) no-repeat; altezza: 9px; larghezza: 25px; overflow: nascosto; fluttuare: a sinistra; cursore: puntatore; .slider_bar background: url (images / bar-trans.png) no-repeat; altezza: 9px; larghezza: 316px; fluttuare: a sinistra; margine: 0px 5px; posizione: relativa; .add background: url (images / add-trans.png) no-repeat; altezza: 25px; larghezza: 23 px; fluttuare: a sinistra; posizione: relativa; inizio: -5px; cursore: puntatore; .slider_handle background: url (images / selector-trans.png) no-repeat; altezza: 25px; larghezza: 12px; posizione: assoluta; inizio: -8px; #slider_caption background: url (images / caption-trans.png) no-repeat; altezza: 45px; larghezza: 38 px; overflow: nascosto; posizione: assoluta; inizio: -50px; margin-left: -10px; imbottitura: 5px 0px 0px 0px; font-family: "Myriad Pro"; colore: # 36665d; font-weight: bold; allineamento del testo: centro; #text font-family: Helvetica, Arial, sans-serif; larghezza: 655 px; sfondo: # f9f9f9; margin-left: auto; margin-right: auto; imbottitura: 20px 20px 20px 25px; posizione: relativa; #text p font-size: 12px; allineamento del testo: a sinistra; colore nero; #text h1 text-align: left; margin-left: 20px; p font-family: Arial, Helvetica, sans-serif; colore: #CCCCCC; #font_indicator position: absolute; a destra: 100 px; top: 50px; font-size: 10px; display: nessuno;
Ancora una volta, non ho intenzione di andare in grande dettaglio con il CSS neanche. Se hai ancora bisogno di ulteriore aiuto, assicurati di controllare quei due tutorial che ho menzionato sopra. Se hai domande, assicurati di farmi sapere nei commenti.
Si noti che tutte le immagini png con trasparenza alfa hanno un finale -trans.png.
Quando ho appreso per la prima volta dell'effetto slider, ho cercato su Google un po 'di più su di esso e su come funziona. Beh, sono stato fortunato a trovare questo fantastico screencast. Aveva anche un effetto molto pulito; una didascalia che sembrava mostrare la posizione del cursore, in cima al cursore. Sfortunatamente, si sono fermati lì. Utilizzeremo una variante del loro codice JQuery come punto di partenza:
$ (function () $ ('# slider_caption'). hide (); var captionVisible = false; $ ('. slider_bar'). slider (handle: '.slider_handle', startValue: 26, minValue: 0, maxValue : 100, start: function (e, ui) $ ('# slider_caption'). FadeIn ('veloce', function () captionVisible = true;);, stop: function (e, ui) if ( captionVisible == false) $ ('# slider_caption'). fadeIn ('veloce', function () captionVisible = true;); $ ('# slider_caption'). css ('left', ui.handle.css ('left')). text (Math.round (ui.value * 15/100 + 8)); $ ("div # text p"). animate (fontSize: ui.value * 15/100 + 8 ) .fadeIn ("slow"); $ ('# slider_caption'). fadeOut ('veloce', function () captionVisible = false;); slide: function (e, ui) $ ('# slider_caption '). css (' left ', ui.handle.css (' left ')). text (Math.round (ui.value * 15/100 + 8)); $ ("div # text p"). css (fontSize: ui.value * 15/100 + 8). fadeIn ("slow"););
Alcune idee chiave:
$ (function () $ ('# slider_caption'). hide (); var calloutVisible = false; $ ('. slider_bar'). slider (handle: '.slider_handle', startValue: 26, minValue: 0, maxValue : 100, start: function (e, ui) $ ('# slider_caption'). FadeIn ('fast', function () calloutVisible = true;); $ ('# font_indicator'). FadeIn ('slow' );, stop: function (e, ui) if (calloutVisible == false) $ ('# slider_caption'). fadeIn ('veloce', function () calloutVisible = true;); $ ('# font_indicator '). fadeIn (' slow '); $ (' # slider_caption '). css (' left ', ui.handle.css (' left ')). text (Math.round (valore ui.valore * 15/100 + 8)); $ ('# font_indicator b'). Text (Math.round (ui.value * 15/100 + 8)); $ ("div # text p"). Animate (fontSize: ui.value * 15/100 + 8). FadeIn ("slow"); $ ('# slider_caption'). FadeOut ('fast', function () calloutVisible = false;); $ ('# font_indicator'). fadeOut ('slow');, slide: function (e, ui) $ ('# slider_caption'). css ('left', ui.handle.css ('left')). text (Math.round ( ui.value * 15/100 + 8)); $ ('# font_indicator b'). text (Math.round (ui. valore * 15/100 + 8)); $ ("div # text p"). css (fontSize: ui.value * 15/100 + 8). fadeIn ("slow"); );
Idee chiave su #font_indicator
Questo non sarebbe un design funzionale, se non avessimo dato le azioni sui segni più e meno al clic. Questo codice potrebbe essere un po 'trascurato e non perfettamente efficiente, ma ha il compito di farlo. Questo progetto richiedeva una quantità sorprendente di matematica, il che spiega alcuni dei numeri stravaganti che finiscono per essere usati.
Senza ulteriori indugi, ecco il resto del javascript, lo spiegherò in seguito:
$ (". aggiungi"). click (function () var currentFontSize = $ ('# text p'). css ('font-size'); var currentFontSizeNum = parseFloat (currentFontSize, 10); var newFontSize = currentFontSizeNum + 1; if (newFontSize < 24) $('#text p').css('font-size', newFontSize); $('#slider_caption').css('left', newFontSize*19.75 - 158).fadeIn('fast').text(Math.round(newFontSize )).fadeOut(); $('.slider_handle').css('left', newFontSize*19.75 - 158); $('#font_indicator').fadeIn('slow'); $('#font_indicator b').text(Math.round(newFontSize )); $('#font_indicator').fadeOut('slow'); else $('#font_indicator').fadeIn('slow'); $('#font_indicator b').text("Isn't 23 big enough?"); $('#font_indicator').fadeOut('slow'); return false; ); $(".minus").click(function() var currentFontSize = $('#text p').css('font-size'); var currentFontSizeNum = parseFloat(currentFontSize, 10); var newFontSize = currentFontSizeNum-1; if (newFontSize > 8) $ ('# text p'). Css ('font-size', newFontSize); $ ('# slider_caption'). css ('left', newFontSize * 19.75 - 158) .fadeIn ('fast'). text (Math.round (newFontSize)). fadeOut (); $ ('. slider_handle'). css ('left', newFontSize * 19.75 - 158); $ ( '# Font_indicator') fadeIn ( 'lento.'); $ ('# font_indicator b'). text (Math.round (newFontSize)); $ ( '# Font_indicator') fadeOut ( 'lento.'); else $ ('# font_indicator'). fadeIn ('slow'); $ ('# font_indicator b'). text ("Non è 8 abbastanza piccolo?"); $ ( '# Font_indicator') fadeOut ( 'lento.'); return false; );
Alcune note chiave:
Tempo di matematica
Regolare la maniglia e la didascalia per reagire ai clic positivi e negativi era una vera sfida. Quello che ho finito per fare, è stato capire la larghezza della barra (316px), e dividendola tra le 16 possibili dimensioni del font (8-23) per capire quanto spazio ogni incremento ha richiesto.
316/16 =
Per sicurezza, ho quindi dovuto capire il punto di partenza per la dimensione del carattere. Sapevo che non era esattamente il 12, perché l'ho leggermente modificato con il 15/100 + 8. Quindi ho preso il valore iniziale del manico (26) e l'ho moltiplicato per questo:
26 * 15/100 + 8 =
Ho pensato che, dato che era arrotondato, sarebbero comunque dodici.
Così ho pensato che la maniglia sarebbe stata la [dimensione carattere * 19.75 - 158 (Le prime 8 dimensioni)] px.
Ho solo pensato di darti uno sguardo sulla mia matematica strana e complicata;) Ci sono probabilmente modi molto più semplici per farlo, ma credo che questa sia la mia logica.
Per quanto riguarda i cookie, ho utilizzato l'eccellente plugin per cookie di Klaus Hartl. Puoi visualizzare la sintassi di base del plug-in nel link che ho fornito. La sfida consisteva nel trovare un punto in cui impostare in modo affidabile il cookie. Ho finito per impostarlo quando il browser si aggiorna o cambia la pagina. In questo modo, lo fa solo quando necessario e anche in modo reale. Per prima cosa aggiungiamo il codice all'inizio del file javascript per leggere il cookie:
var startSize = $ .cookie ('fontSize'); var startSize = parseFloat (startSize, 12); $ ('# text p'). css ('font-size', startSize);
Come ho detto sopra, dobbiamo impostare il cookie quando la pagina viene chiusa. Lo facciamo usando il seguente codice:
window.onbeforeunload = leaveCookie; function leaveCookie () var FontSize = $ ('# text p'). css ('font-size'); var IntFontSize = parseFloat (FontSize, 10); $ .cookie ('fontSize', IntFontSize);
Cosa ho fatto:
Spero tu abbia trovato utile questo tutorial! Per favore, scusa la mia logica di programmazione, non sempre la penso così efficacemente: P. Se avete domande o commenti, non esitate a farmelo sapere nei commenti!