Σχεδιασμός εφαρμογών για κινητά / πλοήγηση Dev Building με jQuery
Τα smartphones είναι πλέον εξοπλισμένα με μερικά πολύ αποδοτικά προγράμματα περιήγησης ιστού. Το JavaScript είναι πιο ισχυρό από ποτέ, και μπορεί να επεκταθεί με τη βοήθεια βιβλιοθηκών κώδικα όπως το jQuery. Όταν προσθέτετε τις πιο πρόσφατες προδιαγραφές HTML5 / CSS3, είναι δυνατόν να δημιουργήσετε πολύ εύκαμπτες εφαρμογές ιστού για κινητά με κάποιο βασικό κωδικό frontend.
Σε αυτό το σεμινάριο θα δείξω πώς μπορείτε να δημιουργήσετε έναν ιστότοπο / webapp που βασίζεται σε κινητά. Θα χρησιμοποιήσουμε ερωτήματα μέσων CSS3 για στόχευση συγκεκριμένων συσκευών και αναλύσεων οθόνης. Συν ένα κομμάτι του jQuery βοηθά να ζωντανέψει το μενού και να φορτώσει το εξωτερικό περιεχόμενο της σελίδας χρησιμοποιώντας τις κλήσεις Ajax. Ακόμη καλύτερα, η διάταξη μπορεί να επεκταθεί ακόμη και να εμφανίζεται σωστά σε κανονικά προγράμματα περιήγησης επιφάνειας εργασίας, όπως το Chrome ή το Firefox.
- Ζωντανή επίδειξη
- Κωδικός πηγής
Ορισμός της δομής σελίδας
Ας αρχίσουμε πρώτα από τη μετάβαση πάνω από τη σελίδα HTML και το στυλ χρησιμοποιώντας κάποιους κανόνες CSS. Θα παραλείψω τις περισσότερες από τις ασυνήθιστες μετα-ετικέτες στην κεφαλίδα, επειδή δεν επηρεάζουν άμεσα την εφαρμογή Ιστού. Ωστόσο, υπάρχουν λίγα λόγια που πρέπει να αναφέρω, δηλαδή από το παρακάτω απόσπασμα:
Συμβατό με X-UA χρησιμοποιείται για να περιγράψει την απόδοση του εγγράφου σας σε ορισμένα προγράμματα περιήγησης. Είναι ένα ενδιαφέρον σενάριο κατά την κωδικοποίηση στο HTML5, οπότε δεν θα ανησυχούσα πολύ για αυτό. Ωστόσο, τα meta θέα ετικέτα είναι πολύ σημαντική. Θέτει το παράθυρο του προγράμματος περιήγησης στο κινητό σε 100% αντί για το τυπικό zoom.
Είναι επίσης δυνατό να απενεργοποιήσετε το ζουμ χρήστη με την τιμή του περιεχομένου user-scalable = όχι
. Αλλά σε αυτή την περίπτωση θέλουμε απλά να ορίσουμε το πλάτος ολόκληρης της οθόνης να είναι το ίδιο με το πλάτος της συσκευής μας. Οι ετικέτες εφαρμογών ιστού της Apple θα επιτρέψουν στον ιστότοπο να αποθηκευτεί ως εικονίδιο αρχικής οθόνης στο iPhone ή στο iPod Touch. Δεν είναι απολύτως αναγκαίο, αλλά σίγουρα αξίζει τον κόπο.
Περιεχόμενο εσωτερικού σώματος
Μέσα στην ετικέτα του σώματος έχω ρυθμίσει ένα περιτύλιγμα div με το αναγνωριστικό #w
. Στο εσωτερικό έχω σπάσει τη διάταξη σε δύο ακόμα διαφορές χρησιμοποιώντας τα αναγνωριστικά #pagebody
και #navmenu
. Το πλάτος ολόκληρης της σελίδας περιορίζεται σε 640ppx κατά επιλογή, έτσι ώστε η διάταξη να κλιμακώνεται σε αυστηρό αριθμό.
Σύνδεσμοι μενού
Στο μενού πλοήγησης δίνεται μια χαμηλότερη τιμή z-index έτσι ώστε #pagebody
είναι πάντα στην κορυφή. Αυτό είναι ζωτικής σημασίας δεδομένου ότι ο κώδικας JavaScript θα μετακινήσει πάνω από το σώμα της σελίδας έναν ορισμένο αριθμό pixel για να αποκαλύψει την πλοήγηση από κάτω.
Έχω χρησιμοποιήσει ένα σύμβολο κατακερματισμού (#) μπροστά από κάθε σελίδα .html για να σταματήσω κάποια κακή συμπεριφορά στο Mobile Safari. Κάθε φορά που κάνετε κλικ σε μια σύνδεση, εμφανίζεται η γραμμή URL και ωθεί το περιεχόμενο. Αλλά όταν γίνεται αναφορά σε ένα αναγνωριστικό, τίποτα δεν επαναφορτώνεται εκτός από τις κλήσεις JavaScript.
CSS Positioning
Δεν υπάρχει πολύς συγχέοντας περιεχόμενο στον κώδικα CSS. Το μεγαλύτερο μέρος της τοποθέτησης γίνεται χειροκίνητα και στη συνέχεια χειρίζεται μέσω του jQuery. Αλλά υπάρχουν μερικά ενδιαφέροντα κομμάτια στο έγγραφό μας.
/ ** @ σώμα ομάδας πυρήνα ** / #w #pagebody θέση: σχετική? αριστερά: 0; μέγιστο πλάτος: 640px; min-πλάτος: 320px; z-δείκτης: 99999; #w #navmenu background: # 475566; ύψος: 100%. εμφάνιση: μπλοκ? θέση: σταθερή. πλάτος: 300px; αριστερά: 0px; κορυφή: 0px; z-δείκτης: 0;
Αυτό το κορυφαίο τμήμα ορίζει στυλ και για τα δύο τμήματα της σελίδας. Το μενού μας είναι μόνο 300px πλάτος, οπότε αυτό αφήνει λίγο περιθώριο για το περιεχόμενο της σελίδας να φαίνεται ακόμα. Το κουμπί επιλογής ανοίγματος / κλεισίματος βρίσκεται επίσης απευθείας στην αριστερή πλευρά και είναι πάντα προσβάσιμο. Το σημαντικό κομμάτι εδώ είναι η αξία ιδιότητας z index και η χρήση θέση: σταθερή.
στο navmenu μας.
Η επάνω στήλη της γραμμής εργαλείων είναι επίσης ένα ενδιαφέρον τμήμα. Αυτό έχει οριστεί σε μια σταθερή θέση, ώστε να μετακινηθεί με το περιεχόμενο της σελίδας. Αυτό επαναλαμβάνει ένα παρόμοιο αποτέλεσμα όπως θα διαπιστώσατε σε οποιαδήποτε γραμμή τίτλου εφαρμογής iOS.
/ ** @ headergroup ** / #w #pagebody header # toolbarnav εμφάνιση: μπλοκ; θέση: σταθερή. αριστερά: 0px; κορυφή: 0px; z-δείκτης: 9999; Ιστορικό: # 0b1851 url ('img / tabbar-solid-bg.png') επάνω αριστερά χωρίς επανάληψη. ακτίνα ακτίνων: 5px; -moz-ακτίνα-ακτίνα: 5px; -webkit-ακτίνα-ακτίνα: 5px; -ο-ακτίνα-ακτίνα: 5px; οριακή-κάτω-δεξιά-ακτίνα: 0; -moz-border-ακτίνα-bottomright: 0; -webkit-περιθώριο-κάτω-δεξιά-ακτίνα: 0; όριο-κάτω-αριστερά-ακτίνα: 0; -moz-περιθώριο-ακτίνα-bottomleft: 0; -webkit-περιθώριο-κάτω-αριστερά-ακτίνα: 0; ύψος: 44px; πλάτος: 100%. μέγιστο πλάτος: 640px; #w #pagebody κεφαλίδα # εργαλείοbarnav h1 text-align: center; padding-top: 10px; padding-right: 40px; χρώμα: # e6e8f2; γραμματοσειρά-βάρος: έντονα. μέγεθος γραμματοσειράς: 2.1em; σκιά κειμένου: 1px 1px 0px # 313131;
Κανόνες για κινητά
Είναι εύκολο να παρατηρήσετε ότι χρησιμοποιώ επίσης εικόνα φόντου για την υφή της μπλε κεφαλίδας. Αυτό έχει μέγεθος 640 × 44 εικονοστοιχείων για να διατηρηθεί με τη συνεπή δομή διάταξης. Αλλά έχω επίσης αναπτύξει μια εικόνα @ 2x για iPhone / iPad οθόνες αμφιβληστροειδούς. Μπορείτε να δείτε και τις δύο εικόνες παρακάτω, ή να τις αρπάξετε από τον πηγαίο κώδικα του demo μου.
- System/demo/img/[email protected]
- System/demo/img/[email protected]
Έχω ρυθμίσει το κινητό CSS για αυτήν τη λειτουργικότητα σε ένα άλλο αρχείο που ονομάζεται responsive.css. Περιέχει δύο ερωτήματα μέσων που αντικαθιστούν τη γραμμή τίτλου bg και το εικονίδιο μενού μενού για συσκευές αμφιβληστροειδούς.
/ οθόνη ** μόνο οθόνη και @ (-webkit-min-device-pixel-ratio: 2), μόνο οθόνη και (min-moz-device-pixel-ratio: 1.5) min-device-pixel-ratio: 1.5) #w #pagebody header background: # 0b1851 url ('img/[email protected] ') επάνω αριστερά χωρίς επανάληψη. μέγεθος φόντου: 640px 44px; #w #pagebody κεφαλίδα # μενού-btn background: url ('img/[email protected] ') no-repeat; μέγεθος φόντου: 53px 30px;
Σχεδιάζοντας βέλη μενού
Στην περιοχή πλοήγησης έχω συμπεριλάβει επίσης ένα μικρό εικονίδιο βέλους στη δεξιά πλευρά κάθε συνδέσμου μενού. Αυτό μπορεί εύκολα να αντικατασταθεί με μια εικόνα από οποιοδήποτε δημιουργικό έργο τέχνης. Αλλά κυρίως όλοι οι λάτρεις του CSS3 θα αγαπήσουν να δοκιμάσουν αυτή τη μέθοδο.
#w #navmenu ul li a :: μετά από περιεχόμενο: "; εμφάνιση: μπλοκ · πλάτος: 6px · ύψος: 6px · σύνορο-δεξιά: 3px στερεό # d0d0d8 · κορυφαίο όριο: 3px στερεό # d0d0d8 · θέση: απόλυτο · δεξιά (45deg), -m-transform: περιστρέψτε (45deg), -o-transform: περιστρέψτε (45deg), μετασχηματίστε: περιστρέψτε (45deg), #w #navmenu ul li a: hover :: μετά από border-color: # cad0e6;
Χρησιμοποιούμε το μεταμορφώνω
να δημιουργήσετε ένα μικρό περίγραμμα μετά το περιεχόμενο. Ρυθμίζω επίσης θέση: απόλυτη;
έτσι μπορούμε να μετακινήσουμε ελεύθερα αυτά τα σύνορα γύρω από το εσωτερικό στοιχείο σύνδεσης. Είναι εξαιρετικά εύκολο να αλλάξετε το χρώμα των περιθωρίων σε μια κατάσταση αιώρησης, η οποία προσφέρει μια πιο δυναμική αίσθηση. Είναι πολύ απίστευτο αυτό που μπορείτε να ολοκληρώσετε χρησιμοποιώντας βασικούς κανόνες HTML5 και CSS3.
Αλλά τώρα ας κινηθούμε στα κομμάτια κώδικα JavaScript. Θυμηθείτε ότι αυτό απαιτεί να συμπεριληφθεί στη βιβλιοθήκη jQuery ο κώδικας μου να λειτουργεί σωστά.
jQuery Animated
Κατά τη σύνταξη αυτών των προσαρμοσμένων κωδικών έχω δημιουργήσει ένα ολοκαίνουργιο έγγραφο που ονομάζεται script.js. Μη διστάσετε να γράψετε αυτά απευθείας μέσα >