Lūdzu, ņemiet vērā, ka, ja kodā ir atsevišķas pēdiņas, kas ir ietvertas echo "" , tās būs jāizņem, t.i. katram no tiem ielieciet atpakaļ slīpsvītru (\") bez iekavām, protams.
Kopumā sanāca tā, kā sanāca. Jums pašam būs jāizlemj, kā to īpaši pievienot savai tēmai — kad jums ir laiks, ir pat jautri "izsmelt smadzenes". Paldies.
Veiksmi tev! Uz drīzu tikšanos emuāra vietnes lapās
Jūs varētu interesēt
WebPoint PRO ir atsaucīga WordPress tēma ar plašu funkcionalitāti un kompetentu tehnisko meklētājprogrammu optimizāciju
Share42 - skripts sociālo tīklu pogu un grāmatzīmju pievienošanai vietnei (ir peldoša paneļa opcija)
Veidojot vietni, bieži vien ir jāpatur skatā horizontālā izvēlne, kurā ir galvenā vietnes navigācija. Horizontālās izvēlnes “fiksēšanas” metode ir ērta no apmeklētāja viedokļa, kuram “navigācija vienmēr ir pa rokai”, neatkarīgi no tā, cik griežat riteni uz leju vai uz augšu.
Horizontālās izvēlnes labošana ar CSS: position:fixed No vienas puses, viss ir vienkārši un ātri atrisināms, izmantojot CSS. Fiksētas horizontālās izvēlnes HTML izkārtojuma piemērs:
- mājas
- Jaunumi
- Kontakti
- Meklēt
[lapas saturs] [vietnes kājene]Fiksētas horizontālās izvēlnes CSS izkārtojums:
# izvēlne-augš-gandrīz fiksēts(pozīcija: fiksēta; augšā: 10 pikseļi; pa kreisi: 0; augstums: 30 pikseļi; platums: 100%; mala: 0; )
Tagad iestatīsim lapas satura atkāpi, kas vienāda ar izvēlnes augstumu:
#saturs ( malas augšdaļa: 30 pikseļi; )
Un tagad mums ir "gandrīz" izdevies. Ēdienkarte apmeklētājam ir “vienmēr redzama”. Bet ko mums darīt, ja mūsu dizainā ir vietnes galvene, kam seko pati izvēlne, un galvenē mums ir logotips, vietnes moto un baneri.
Mēs varam labot vietnes galveni, padarot satura atkāpi vienādu augstumā ar galvenes un izvēlnes augstumu, kā arī atkāpi starp tām. Taču rodas problēma. Mēs ievērojami ierobežojam mūsu apmeklētāju skatīšanās vietu lapas satura skatīšanai. Variants atteikties no vāciņa mums nemaz neder.
Horizontālās izvēlnes labošana, izmantojot JavaScript Tātad, apsvērsim iespēju, kad izvēlne “aiziet” aiz vietnes galvenes, bet, ja apmeklētājs aktīvi ritina uz leju, izvēlne tiek “fiksēta” augšpusē un paliek vietā. Vietnes galvene nav redzama. Ja apmeklētājs atgriežas pie lapas galvenes, izvēlne “kļūst” tās vietā “aiz vietnes galvenes”. Sākumā šeit ir pilns lapas izkārtojuma parauga HTML izkārtojums:
Mājas lapas logo Vietnes sauklis Reklāmkarogs
- mājas
- Jaunumi
- Kontakti
- Meklēt
[lapas saturs] [vietnes kājene]Mūsu vietnes veidne sastāv no vairākām tipiskām jomām:
- vietņu galvenes — #galvene, augstums 150 pikseļi
- horizontālā izvēlne - #menu-top-gandrīz-labots- augstums 30 pikseļi,
- lapas galvenā informācijas zona – #saturs,
- vietnes kājene - #footer.
Šeit ir CSS izkārtojums:
#menu-top-almost-fixed( pozīcija: fiksēta; piemale: 0; pa kreisi: 0; augšā: 150 pikseļi; augstums: 30 pikseļi; ) #header( displejs: bloks; augstums: 150 pikseļi; pārplūde: paslēpts; pozīcija: relatīvā; mala -apakšā: 55px; ) #menu-top-almost-fixed ul, #menu-top-almost-fixed li( list-style: none; margin: 0; polsterējums: 0; ) #menu-top-almost-fixed ul ( displejs: bloks; teksta līdzinājums: centrā; platums: 100%; peldēšana: pa kreisi; ) #izvēlne-augšpusē-gandrīz fiksēts ul li( displejs: iekļauts; līnijas augstums: 30 pikseļi; platums: 120 pikseļi; polsterējums: 0 5 pikseļi teksta līdzināšana: centrs ;
Vispirms iestatīsim atkāpi no galvenes līdz saturam, kas ir vienāds ar mūsu izvēlnes augstumu + nelielu atkāpi ar nelielu rezervi estētiskajam skaistumam. #header ( margin-down: 55px; ) . Labosim izvēlni tieši aiz galvenes: #menu-top-almost-fixed(pozīcija: fiksēta; mala: 0; kreisā: 0; augšā: 150 pikseļi; augstums: 30 pikseļi; ).
Tagad pārliecināsimies, ka, ritinot, izvēlne tiek “labota” tieši lapas augšdaļā. Ievietosim šādu javascript starp un:
Javascript:
var m1 = 150; /* galvenes augstums pikseļos */ var m2 = 2; /* atkāpe, kad ritināšanas laikā galvene vairs nav redzama */ var menuID = "menu-top-almost-fixed"; /* horizontālās izvēlnes ID, lai piespraustu */ var menuOpacityOnChange = "0,7"; /* izvēlnes caurspīdīgums ritinot: 1 - necaurspīdīgs, 0,5 - caurspīdīgs 0,0 - pilnīgi caurspīdīgs */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* funkcija starppārlūkprogrammas atkāpes noteikšanai no dokumenta augšdaļas līdz ritināšanas ritinātāja pašreizējai pozīcijai */ funkcija getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "skaitlis" ) ( //Netscape saderīgs scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM saderīgs scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) atgriež scrOfY ) /* funkcija, kas iestata augšējo polsterējumu " Fiksēta horizontālā izvēlne atkarībā no ritinātāja pozīcijas un redzamības galvenēm */ funkcija marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefined" && s)( if (augšā+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);
}
Ieviešanas piemēru var redzēt, sekojot šai saitei un izmantojot ritināšanas ritenīti. Tātad šeit viss ir vienkārši. Iestatījumos mēs nododam skriptam šādus parametrus:
- var m1 = 150; - galvenes augstums pikseļos,
- var m2 = 2; - atkāpe, ja ritināšanas laikā galvene vairs nav redzama,
- var menuID = "izvēlnes augšpusē gandrīz fiksēts"; - piespraustās horizontālās izvēlnes ID,
- var menuOpacityOnChange = “0,7”; - izvēlnes caurspīdīgums ritināšanas laikā:
- 1 - necaurspīdīgs
- 0,5 – caurspīdīgs
- 0,0 - pilnīgi caurspīdīgs
Šajā versijā esam nedaudz “uzskaņojuši” savu ēdienkarti, un ritinot pievienojam tai caurspīdīgumu. Uzreiz sevi ierosina klasiskāks variants, kad mēs nemainām izvēlnes caurspīdīgumu, bet vienkārši izveidojam izvēlnei fonu fona formā ar izvēlnes krāsu un zemāku caurspīdīgu apmali (kurā gradients vienmērīgi “pāriet ” no necaurspīdīgas krāsas uz caurspīdīgu):
Mainīsim nedaudz CSS izkārtojumu mūsu horizontālajai fiksētajai izvēlnei:
#menu-top-almost-fixed (pozīcija: fiksēta; piemale: 0; pa kreisi: 0; augšā: 150 pikseļi; augstums: 30 pikseļi; fons: url(./images/white-gradient-l.png) apakšā pa kreisi, atkārtojiet-x ;)
Tagad dosim modificēto javascript kodu, kuru ievietosim starp un:
Javascript:
var m1 = 150; /* galvenes augstums pikseļos */ var m2 = 0; /* atkāpe, kad ritināšanas laikā galvene vairs nav redzama */ var menuID = "menu-top-almost-fixed"; /* funkcija starppārlūkprogrammas atkāpes noteikšanai no dokumenta augšdaļas līdz ritināšanas ritinātāja pašreizējai pozīcijai */ funkcija getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "skaitlis" ) ( //Netscape saderīgs scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM saderīgs scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) atgriež scrOfY ) /* funkcija, kas iestata augšējo polsterējumu " Fiksēta horizontālā izvēlne atkarībā no ritinātāja pozīcijas un redzamības galvenēm */ funkcija marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "undefined" && s)( if (augšā+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);
}
Tātad šeit viss ir vienkārši. Iestatījumos mēs nododam skriptam šādus parametrus:
- var m1 = 150; - galvenes augstums pikseļos,
- var m2 = 0; - atkāpe, ja ritināšanas laikā galvene vairs nav redzama.
Izvēlne darbojas labi, taču, atkārtoti ielādējot lapu, izvēlne tiek parādīta ar pirmo ievilkumu Ja rodas šāda problēma, pēc lapas ielādes vienu reizi jāizsauc izvēlne. Lai to izdarītu, mainiet funkcijas izsaukuma kodu no:
Funkcija setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "nedefined")( logs. attachEvent ( "onscroll", marginMenuTop);
Uz šādu kodu:
Funkcija setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "nedefined")( logs. attachEvent ( "onscroll", marginMenuTop());
Pēc lapas ielādes mēs nekavējoties izsaucam funkciju marginMenuTop, kas pārbaudīs izvēlnes pozīciju lapā un piemēros vēlamo stilu
Daļēji fiksētas izvēlnes ieviešana, izmantojot Afixx jQuery spraudni no Twitter Bootstrap Turpinot šo tēmu, jums tika uzrakstīts raksts par gandrīz fiksētas izvēlnes ieviešanu, izmantojot jQuery Affix spraudni no Twitter Bootstrap ietvara.
Pēdējā laikā modē ir kļuvusi tendence: fiksēta izvēlne, ritinot lapu. Parasti tā ir horizontāla izvēlne galvenās lapas vietnēs.
Tas darbojas tā, ka, lapai ielādējot, izvēlne atrodas noteiktā lapas vietā (piemēram, zem “galvenes”), un, ritinot lapu, tā tiek fiksēta pārlūkprogrammas loga augšdaļā un netiek ritināts kā cits saturs.
Ja apmeklētājs ritina lapu uz augšu un sasniedz lapas sākumu, izvēlne atgriežas savā vietā. Tādējādi apmeklētājs, atrodoties jebkurā lapas vietā, var to izmantot un doties uz citām vietnes lapām. Tas ir ļoti ērti un atbilst lietojamības principiem.
Tagad es jums pastāstīšu, kā īstenot šādu ēdienkarti, pavadot minimālu savu laiku un neizmantojot profesionāļu palīdzību.
Pirmkārt, mums ir jāpievieno vietnes jQuery bibliotēka
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Varat izveidot savienojumu lokāli vai izmantojot Google.
Lai izveidotu savienojumu lokāli, no oficiālās vietnes http://jquery.com/ ir jālejupielādē jQuery fails.
CSS
![](https://i1.wp.com/spark.ru/upload/other/b_558e534cddfe5.jpg)
JavaScript
![](https://i0.wp.com/spark.ru/upload/other/b_558e53698c52a.jpg)
Skriptā mēs izveidojam 2 mainīgos, kuros saglabājam galvenes augstuma un bloka atkāpes vērtības ar izvēlni augšpusē. Var nebūt ievilkuma (kā šajā gadījumā). Pēc tam mēs rakstām apdarinātāju loga objekta notikumam onScroll. Tajā, izmantojot scrollTop() metodi, mēs aprēķinām attālumu no lapas augšdaļas līdz ritinātāja pašreizējai pozīcijai. Pamatojoties uz aprēķinu, mēs novietojam bloku ar izvēlni.
Tas arī viss, pateicoties vienkāršiem risinājumiem, jūs varat sasniegt skaistu fiksētu izvēlni, kas netiks ritināta, ritinot vietnes galveno daļu
Pirmā lieta, ko mēs darīsim, ir ielīmēt mūsu HTML kodu vietā jūsu vietnē, kur vēlaties redzēt izvēlni.
- mājas
- WordPress
- HTML5 un CSS3
- PHP
Izvēlnei tiek piešķirta noklusējuma klase, pateicoties kurai mūsu jquery pēc tam var noteikt, ka šis konkrētais bloks pēc tam ir jāpiesprauž augšpusē.
2. jQuery kods Galvenē pirms beigu galviņas ievietojiet kodu. Kā jau rakstīju iepriekš, tas definē bloku ar klases noklusējuma iestatījumu un pēc ritināšanas piešķir tam fiksēto klasi. Ja nepieciešams, varat mainīt klases nosaukumus. Bet esiet uzmanīgi un neko nepalaidiet garām, pretējā gadījumā viss vienkārši pārstās darboties. Jums ir jāmaina jQuery, HTML un CSS.
$(document).ready(function())( var $menu = $("#izvēlne"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ izvēlne hasClass("noklusējums"))( $menu.fadeOut("fast",function())( $(this).removeClass("noklusējums") .addClass("fixed transbg") .fadeIn("fast") ; )) else if($(this).scrollTop()