Λάβετε υπόψη ότι εάν υπάρχουν μεμονωμένα εισαγωγικά στον κωδικό που περικλείεται στο echo "" , θα πρέπει να διαφύγουν, π.χ. βάλε μια ανάστροφη κάθετο (\") μπροστά από κάθε ένα από αυτά, χωρίς παρενθέσεις φυσικά.
Σε γενικές γραμμές, αποδείχθηκε όπως αποδείχθηκε. Θα πρέπει να αποφασίσετε μόνοι σας πώς να το επισυνάψετε συγκεκριμένα στο θέμα σας - όταν έχετε χρόνο, είναι ακόμη διασκεδαστικό να «σηκώνετε τον εγκέφαλό σας». Ευχαριστώ.
Καλή σου τύχη! Τα λέμε σύντομα στις σελίδες του ιστότοπου του ιστολογίου
Μπορεί να σας ενδιαφέρει
Το WebPoint PRO είναι ένα αποκριτικό θέμα WordPress με ευρεία λειτουργικότητα και ικανή τεχνική βελτιστοποίηση μηχανών αναζήτησης
Share42 - ένα σενάριο για την προσθήκη κουμπιών κοινωνικής δικτύωσης και σελιδοδεικτών στον ιστότοπο (υπάρχει μια επιλογή αιωρούμενου πίνακα)
Κατά τη δημιουργία ενός ιστότοπου, συχνά υπάρχει ανάγκη να έχετε υπόψη το οριζόντιο μενού, το οποίο περιέχει την κύρια πλοήγηση του ιστότοπου. Η μέθοδος «διόρθωσης» του οριζόντιου μενού είναι βολική από την πλευρά του επισκέπτη, ο οποίος «έχει την πλοήγηση πάντα στη διάθεσή του», όσο κι αν γυρίσετε τον τροχό προς τα κάτω ή προς τα πάνω.
Διόρθωση του οριζόντιου μενού με CSS: position:fixed Από τη μία πλευρά, όλα είναι απλά και εύκολα να λυθούν χρησιμοποιώντας CSS σε χρόνο μηδέν. Παράδειγμα διάταξης HTML ενός σταθερού οριζόντιου μενού:
- Σπίτι
- Νέα
- Επαφές
- Αναζήτηση
[περιεχόμενο σελίδας] [υποσέλιδο ιστότοπου]Διάταξη CSS ενός σταθερού οριζόντιου μενού:
# menu-top-σχεδόν-σταθερό( θέση: σταθερό; επάνω: 10 px; αριστερά: 0; ύψος: 30 px; πλάτος: 100%; περιθώριο: 0; )
Τώρα ας ορίσουμε την εσοχή για το περιεχόμενο της σελίδας ίση με το ύψος του μενού:
#content (margin-top: 30px;)
Και τώρα το έχουμε «σχεδόν» πετύχει. Το μενού είναι πάντα ορατό στον επισκέπτη. Αλλά τι πρέπει να κάνουμε εάν έχουμε μια κεφαλίδα ιστότοπου στο σχέδιό μας, ακολουθούμενη από το ίδιο το μενού και στην κεφαλίδα έχουμε ένα λογότυπο, μότο ιστότοπου και banners.
Λοιπόν, μπορούμε να διορθώσουμε την κεφαλίδα του ιστότοπου κάνοντας την εσοχή περιεχομένου ίση σε ύψος με την κεφαλίδα και το μενού, μαζί με την εσοχή μεταξύ τους. Όμως προκύπτει ένα πρόβλημα. Περιορίζουμε σημαντικά τον χώρο προβολής για τους επισκέπτες μας για να δουν το περιεχόμενο της σελίδας. Η επιλογή να εγκαταλείψουμε το καπάκι δεν μας ταιριάζει καθόλου.
Διορθώνοντας ένα οριζόντιο μενού χρησιμοποιώντας javascript Ας εξετάσουμε, λοιπόν, την επιλογή όταν το μενού «πηγαίνει» πίσω από την κεφαλίδα του ιστότοπου, αλλά εάν ο επισκέπτης κάνει ενεργή κύλιση προς τα κάτω, το μενού είναι «σταθερό» στην κορυφή και παραμένει στη θέση του. Η κεφαλίδα του ιστότοπου δεν είναι ορατή. Εάν ο επισκέπτης επιστρέψει στην κεφαλίδα της σελίδας, το μενού «γίνεται» στη θέση του «πίσω από την κεφαλίδα του ιστότοπου». Αρχικά, εδώ είναι η πλήρης διάταξη HTML ενός παραδείγματος διάταξης σελίδας:
Λογότυπο ιστοσελίδας Διαφήμιση με σύνθημα ιστότοπου
- Σπίτι
- Νέα
- Επαφές
- Αναζήτηση
[περιεχόμενο σελίδας] [υποσέλιδο ιστότοπου]Το πρότυπο του ιστότοπού μας αποτελείται από πολλές τυπικές περιοχές:
- κεφαλίδες ιστότοπου – #επί κεφαλής, ύψος 150 px
- οριζόντιο μενού - #menu-top-σχεδόν-διορθώθηκε– ύψος 30 px,
- κύρια περιοχή πληροφοριών της σελίδας – #περιεχόμενο,
- υποσέλιδο ιστότοπου - #footer.
Ακολουθεί η διάταξη CSS:
#menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) #header( display: block; height: 150px; overflow: hidden; position: σχετικό; περιθώριο -κάτω: 55 εικονοστοιχεία; ) #menu-top-almost-fixed ul, #menu-top-almost-fixed li( style-list: none; margin: 0; padding: 0; ) #menu-top-almost-fixed ul ( οθόνη: μπλοκ; στοίχιση κειμένου: κέντρο; πλάτος: 100%; float: αριστερά; ) #menu-top-almost-fixed ul li( οθόνη: inline; line-height: 30px; πλάτος: 120px; padding: 0 5px ; στοίχιση κειμένου: στο κέντρο; )
Αρχικά, ας ορίσουμε μια εσοχή από την κεφαλίδα στο περιεχόμενο ίση με το ύψος του μενού μας + μια μικρή εσοχή με περιθώριο αισθητικής ομορφιάς. #header (margin-bottom: 55px;) . Ας διορθώσουμε το μενού μας ακριβώς πίσω από την κεφαλίδα: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
Τώρα ας βεβαιωθούμε ότι κατά την κύλιση, το μενού "διορθώνει" ακριβώς στο επάνω μέρος της σελίδας. Ας βάλουμε το ακόλουθο javascript μεταξύ και :
Javascript:
var m1 = 150; /* ύψος κεφαλίδας σε pixel */ var m2 = 2; /* εσοχή όταν η κεφαλίδα δεν είναι πλέον ορατή κατά την κύλιση */ var menuID = "menu-top-almost-fixed"; /* id του οριζόντιου μενού για καρφίτσωμα */ var menuOpacityOnChange = "0.7"; /* διαφάνεια μενού κατά την κύλιση: 1 - αδιαφανές, 0,5 - ημιδιαφανές 0,0 - εντελώς διαφανές */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* συνάρτηση για τον προσδιορισμό της εσοχής από το επάνω μέρος του εγγράφου έως την τρέχουσα θέση του κυλιόμενου κύλισης */ συνάρτηση getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "αριθμός" ) ( //Netscape compliant scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM compliant scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* συνάρτηση που ορίζει την επάνω συμπλήρωση για ένα σταθερό οριζόντιο μενού ανάλογα με τη θέση κύλισης και τις κεφαλίδες ορατότητας */ συνάρτηση marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefined" && s)( if (top +m2< m1) {
s.style.top = (m1-top) + "px";
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.opacity = "1";
} else {
s.style.top = m2 + "px";
s.style.opacity = menuOpacityOnChange;
s.style.filter = s.style.filter.replace("progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")","");
s.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+menuOpacityOnChangeIE+")";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
marginMenuTop();
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
Μπορείτε να δείτε ένα παράδειγμα υλοποίησης ακολουθώντας αυτόν τον σύνδεσμο και χρησιμοποιώντας τον τροχό κύλισης. Έτσι, όλα είναι απλά εδώ. Στις ρυθμίσεις περνάμε τις ακόλουθες παραμέτρους στο σενάριο:
- var m1 = 150; - ύψος κεφαλίδας σε pixel,
- var m2 = 2; - εσοχή όταν η κεφαλίδα δεν είναι πλέον ορατή κατά την κύλιση,
- var menuID = "menu-top-σχεδόν διορθώθηκε"; - αναγνωριστικό του οριζόντιου μενού για καρφίτσα,
- var menuOpacityOnChange = “0,7”; - διαφάνεια μενού κατά την κύλιση:
- 1 - αδιαφανές
- 0,5 – ημιδιαφανές
- 0,0 - εντελώς διαφανές
Σε αυτή την έκδοση, έχουμε «συντονίσει» λίγο το μενού μας και κατά την κύλιση προσθέτουμε ημιδιαφάνεια σε αυτό. Μια πιο κλασική επιλογή προτείνεται αμέσως, όταν δεν αλλάζουμε τη διαφάνεια του μενού, αλλά απλώς κάνουμε ένα φόντο για το μενού με τη μορφή φόντου με το χρώμα του μενού και ένα χαμηλότερο ημιδιαφανές περίγραμμα (στο οποίο η διαβάθμιση "μεταβαίνει ομαλά ” από αδιαφανές χρώμα σε διαφανές):
Ας αλλάξουμε μια μικρή διάταξη CSS για το οριζόντιο σταθερό μενού μας:
#menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; background: url(./images/white-gradient-l.png) κάτω αριστερά επανάληψη-x ;)
Τώρα ας δώσουμε τον τροποποιημένο κώδικα javascript, τον οποίο θα τοποθετήσουμε μεταξύ και:
Javascript:
var m1 = 150; /* ύψος κεφαλίδας σε pixel */ var m2 = 0; /* εσοχή όταν η κεφαλίδα δεν είναι πλέον ορατή κατά την κύλιση */ var menuID = "menu-top-almost-fixed"; /* συνάρτηση για τον προσδιορισμό της εσοχής από το επάνω μέρος του εγγράφου έως την τρέχουσα θέση του κυλιόμενου κύλισης */ συνάρτηση getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "αριθμός" ) ( //Netscape compliant scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM compliant scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* συνάρτηση που ορίζει την επάνω συμπλήρωση για ένα σταθερό οριζόντιο μενού ανάλογα με τη θέση κύλισης και τις κεφαλίδες ορατότητας */ συνάρτηση marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefined" && s)( if (top +m2< m1) {
s.style.top = (m1-top) + "px";
} else {
s.style.top = m2 + "px";
}
}
}
/** функция регистрирует
вычисление позиции
«плавающего» меню при прокрутке страницы
**/
function setMenuPosition(){
if(typeof window.addEventListener != "undefined"){
window.addEventListener("scroll", marginMenuTop, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onscroll", marginMenuTop);
}
}
/** регистрируем вызов
необходимых функций после
загрузки страницы **/
if(typeof window.addEventListener != "undefined"){
window.addEventListener("load", setMenuPosition, false);
} else if(typeof window.attachEvent != "undefined"){
window. attachEvent("onload", setMenuPosition);
}
Έτσι, όλα είναι απλά εδώ. Στις ρυθμίσεις περνάμε τις ακόλουθες παραμέτρους στο σενάριο:
- var m1 = 150; - ύψος κεφαλίδας σε pixel,
- var m2 = 0; - εσοχή όταν η κεφαλίδα δεν είναι πλέον ορατή κατά την κύλιση.
Το μενού λειτουργεί καλά, αλλά αν φορτώσετε ξανά τη σελίδα, το μενού εμφανίζεται με την πρώτη εσοχή Εάν υπάρχει τέτοιο πρόβλημα, πρέπει να καλέσετε το μενού αφού φορτώσετε τη σελίδα μία φορά. Για να το κάνετε αυτό, αλλάξτε τον κωδικό κλήσης λειτουργίας από:
Συνάρτηση setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachEvent ( "onscroll", marginMenuTop); ) );
Στον παρακάτω κώδικα:
Συνάρτηση setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachEvent ( "onscroll", marginMenuTop); ) marginMenuTop(); );
Μετά τη φόρτωση της σελίδας, καλούμε αμέσως τη συνάρτηση marginMenuTop, η οποία θα ελέγξει τη θέση του μενού στη σελίδα και θα εφαρμόσει το επιθυμητό στυλ
Εφαρμογή ενός εν μέρει σταθερού μενού χρησιμοποιώντας την προσθήκη Afixx jQuery από το Twitter Bootstrap Στη συνέχεια αυτού του θέματος, γράφτηκε ένα άρθρο για εσάς σχετικά με την υλοποίηση ενός σχεδόν σταθερού μενού χρησιμοποιώντας την προσθήκη jQuery Affix από το πλαίσιο Bootstrap του Twitter.
Πρόσφατα, μια τάση έχει γίνει της μόδας: ένα σταθερό μενού κατά την κύλιση μιας σελίδας. Συνήθως αυτό είναι ένα οριζόντιο μενού σε ιστότοπους Σελίδας προορισμού.
Πώς λειτουργεί είναι ότι όταν φορτώνεται η σελίδα, το μενού βρίσκεται σε ένα συγκεκριμένο σημείο της σελίδας (για παράδειγμα, κάτω από την "κεφαλίδα") και όταν κάνετε κύλιση στη σελίδα, στερεώνεται στο επάνω μέρος του παραθύρου του προγράμματος περιήγησης και δεν κάνει κύλιση όπως άλλο περιεχόμενο.
Εάν ο επισκέπτης κάνει κύλιση προς τα επάνω στη σελίδα και φτάσει στην αρχή της σελίδας, το μενού επιστρέφει στη θέση του. Έτσι, ο επισκέπτης, όντας οπουδήποτε στη σελίδα, μπορεί να το χρησιμοποιήσει και να μεταβεί σε άλλες σελίδες του ιστότοπου. Αυτό είναι πολύ βολικό και συμμορφώνεται με τις αρχές χρηστικότητας.
Τώρα θα σας πω πώς να εφαρμόσετε ένα τέτοιο μενού ξοδεύοντας ελάχιστο χρόνο και χωρίς να καταφύγετε στη βοήθεια επαγγελματιών.
Αρχικά, πρέπει να συνδέσουμε τη βιβλιοθήκη jQuery για τον ιστότοπο
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Μπορείτε να συνδεθείτε τοπικά ή μέσω Google.
Για να συνδεθείτε τοπικά, πρέπει να κάνετε λήψη του αρχείου jQuery από την επίσημη ιστοσελίδα http://jquery.com/
CSS
![](https://i1.wp.com/spark.ru/upload/other/b_558e534cddfe5.jpg)
JavaScript
![](https://i0.wp.com/spark.ru/upload/other/b_558e53698c52a.jpg)
Στο σενάριο, δημιουργούμε 2 μεταβλητές στις οποίες αποθηκεύουμε τις τιμές του ύψους της κεφαλίδας και της εσοχής του μπλοκ με το μενού στην κορυφή. Μπορεί να μην υπάρχει εσοχή (όπως σε αυτή την περίπτωση). Στη συνέχεια γράφουμε έναν χειριστή για το συμβάν onScroll του αντικειμένου παραθύρου. Σε αυτό, χρησιμοποιώντας τη μέθοδο scrollTop(), υπολογίζουμε την απόσταση από την κορυφή της σελίδας μέχρι την τρέχουσα θέση του scroller. Με βάση τον υπολογισμό, τοποθετούμε το μπλοκ με το μενού.
Αυτό είναι όλο, χάρη σε απλές λύσεις μπορείτε να επιτύχετε ένα όμορφο σταθερό μενού που δεν θα μετακινηθεί κατά την κύλιση στο κύριο μέρος του ιστότοπου
Το πρώτο πράγμα που θα κάνουμε είναι να επικολλήσουμε τον κώδικα HTML στο σημείο στον ιστότοπό σας όπου θέλετε να δείτε το μενού.
- Σπίτι
- WordPress
- HTML5&CSS3
- PHP
Στο μενού εκχωρείται η προεπιλεγμένη κλάση, χάρη στην οποία το jquery μας μπορεί στη συνέχεια να καθορίσει ότι αυτό το συγκεκριμένο μπλοκ πρέπει στη συνέχεια να καρφιτσωθεί στην κορυφή.
2. Κώδικας jQuery Στην κεφαλίδα, πριν από την κεφαλή κλεισίματος, εισαγάγετε τον κωδικό. Όπως έγραψα παραπάνω, ορίζει ένα μπλοκ με προεπιλογή κλάσης και μετά την κύλιση του εκχωρεί class fixed . Μπορείτε να αλλάξετε τα ονόματα των τάξεων εάν το χρειάζεστε. Αλλά απλά να είστε προσεκτικοί και να μην χάσετε τίποτα, διαφορετικά όλα απλά θα σταματήσουν να λειτουργούν. Πρέπει να αλλάξετε σε jQuery, HTML και CSS.
$(document).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ μενού. hasClass("προεπιλογή"))( $menu.fadeOut("γρήγορο",function())( $(this).removeClass("προεπιλογή") .addClass("διορθώθηκε transbg") .fadeIn("γρήγορο") ; )) ; ) else if($(this).scrollTop()