Upozorňujeme, že ak sú v kóde jednoduché úvodzovky uzavreté v echo "" , bude potrebné ich escapovať, t.j. pred každý z nich vložte opačnú lomku (\"), samozrejme bez zátvoriek.
Vo všeobecnosti to dopadlo tak, ako to dopadlo. Budete sa musieť rozhodnúť sami, ako to konkrétne pripojiť k vašej téme - keď máte čas, je dokonca zábavné „rozhádzať si mozog“. Ďakujem.
Veľa šťastia! Uvidíme sa čoskoro na stránkach blogu
Mohlo by vás to zaujímať
WebPoint PRO je responzívna téma WordPress so širokou funkčnosťou a kompetentnou technickou optimalizáciou pre vyhľadávače
Share42 - skript na pridávanie tlačidiel a záložiek sociálnych sietí na stránku (existuje možnosť plávajúceho panela)
Pri tvorbe webstránky je často potrebné mať na očiach horizontálne menu, ktoré obsahuje hlavnú navigáciu webu. Spôsob „upevnenia“ horizontálneho menu je pohodlný z pohľadu návštevníka, ktorý „má navigáciu vždy po ruke“, bez ohľadu na to, ako veľmi otočíte kolieskom nadol alebo nahor.
Oprava horizontálneho menu pomocou CSS: position:fixed Na jednej strane je všetko jednoduché a ľahko riešiteľné pomocou CSS behom chvíľky. Príklad rozloženia HTML pevnej horizontálnej ponuky:
- Domov
- Správy
- Kontakty
- Vyhľadávanie
[obsah stránky] [päta stránky]CSS rozloženie pevnej horizontálnej ponuky:
# menu-top-almost-fixed( position: fixed; top: 10px; left: 0; height: 30px; width: 100%; margin: 0; )
Teraz nastavme odsadenie obsahu stránky na výšku ponuky:
#content ( margin-top: 30px; )
A teraz sa nám to „takmer“ podarilo. Jedálny lístok je pre návštevníka vždy viditeľný. Čo však máme robiť, ak máme v dizajne hlavičku stránky, za ňou samotné menu a v hlavičke máme logo, motto stránky a bannery.
Hlavičku stránky môžeme opraviť tak, že odsadenie obsahu bude mať rovnakú výšku ako hlavička a ponuka spolu s odsadením medzi nimi. Nastáva však problém. Výrazne obmedzujeme zobrazovací priestor pre našich návštevníkov na prezeranie obsahu stránky. Možnosť opustiť čiapku nám vôbec nevyhovuje.
Oprava horizontálneho menu pomocou javascriptu Zvážme teda možnosť, keď ponuka „ide“ za hlavičku stránky, ale ak návštevník aktívne roluje nadol, ponuka je „pevná“ v hornej časti a zostáva na svojom mieste. Hlavička stránky nie je viditeľná. Ak sa návštevník vráti do hlavičky stránky, na jej mieste „za hlavičkou stránky“ sa „stane“ ponuka. Na začiatok uvádzame úplné rozloženie HTML vzorového rozloženia stránky:
Logo webovej stránky Slogan webovej stránky Banner
- Domov
- Správy
- Kontakty
- Vyhľadávanie
[obsah stránky] [päta stránky]Naša šablóna webovej stránky pozostáva z niekoľkých typických oblastí:
- hlavičky stránok – #header, výška 150px
- horizontálne menu - #menu-top-takmer-fixed– výška 30px,
- hlavná informačná oblasť stránky – #obsah,
- päta stránky - #päta.
Tu je rozloženie CSS:
#menu-top-almost-fixed( pozícia: pevná; okraj: 0; vľavo: 0; hore: 150px; výška: 30px; ) #header( zobrazenie: blok; výška: 150px; pretečenie: skryté; poloha: relatívna; okraj -dole: 55px; ) #menu-top-takmer-pevne ul, #menu-top-takmer-pevne li( štýl zoznamu: žiadny; okraj: 0; odsadenie: 0; ) #menu-top-takmer-pevne ul ( display: block; text-align: center; width: 100%; float: left; ) #menu-top-almost-fixed ul li( display: inline; line-height: 30px; width: 120px; padding: 0 5px ; zarovnanie textu: na stred; )
Najprv nastavme odsadenie od hlavičky k obsahu rovnajúcemu sa výške nášho jedálneho lístka + malé odsadenie s okrajom pre estetickú krásu. #header ( margin-bottom: 55px; ) . Opravme našu ponuku hneď za hlavičkou: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
Teraz sa uistite, že pri posúvaní sa ponuka „opraví“ presne v hornej časti stránky. Dajme nasledujúci javascript medzi a:
Javascript:
var m1 = 150; /* výška hlavičky v pixeloch */ var m2 = 2; /* odsadenie, keď hlavička už nie je viditeľná počas rolovania */ var menuID = "menu-top-almost-fixed"; /* id vodorovnej ponuky na pripnutie */ var menuOpacityOnChange = "0.7"; /* priehľadnosť menu pri rolovaní: 1 - nepriehľadné, 0,5 - priesvitné 0,0 - úplne priehľadné */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* funkcia na určenie odsadenia naprieč prehliadačmi od hornej časti dokumentu po aktuálnu pozíciu posúvača */ funkcia getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "číslo" ) ( //kompatibilný s Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //v súlade s DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkcia, ktorá nastavuje hornú výplň pre plávajúce pevná horizontálna ponuka v závislosti od polohy posúvača a viditeľnosti hlavičiek */ function 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);
}
Príklad implementácie si môžete pozrieť kliknutím na tento odkaz a pomocou rolovacieho kolieska. Takže tu je všetko jednoduché. V nastaveniach odovzdáme skriptu nasledujúce parametre:
- var m1 = 150; - výška hlavičky v pixeloch,
- var m2 = 2; - odsadenie, keď hlavička už nie je viditeľná pri posúvaní,
- var menuID = “horná ponuka-takmer opravená”; - ID horizontálneho menu na pripnutie,
- var menuOpacityOnChange = "0,7"; - priehľadnosť menu pri rolovaní:
- 1 - nepriehľadné
- 0,5 – priesvitné
- 0,0 - úplne transparentné
V tejto verzii sme náš jedálniček trochu “vyladili” a pri rolovaní mu pridávame priesvitnosť. Okamžite sa ponúka klasickejšia možnosť, kedy nemeníme priehľadnosť menu, ale jednoducho urobíme pozadie menu v podobe pozadia s farbou menu a spodným priesvitným okrajom (v ktorom prechod plynulo „prechádza“ ” z nepriehľadnej farby na priehľadnú):
Zmeňme malé rozloženie CSS pre naše horizontálne pevné menu:
#menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; background: url(./images/white-gradient-l.png) left-dole repeat-x ;)
Teraz dajme upravený javascriptový kód, ktorý umiestnime medzi a:
Javascript:
var m1 = 150; /* výška hlavičky v pixeloch */ var m2 = 0; /* odsadenie, keď hlavička už nie je viditeľná počas rolovania */ var menuID = "menu-top-almost-fixed"; /* funkcia na určenie odsadenia naprieč prehliadačmi od hornej časti dokumentu po aktuálnu pozíciu posúvača */ funkcia getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "číslo" ) ( //kompatibilný s Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //v súlade s DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkcia, ktorá nastavuje hornú výplň pre plávajúce pevná horizontálna ponuka v závislosti od polohy posúvača a viditeľnosti hlavičiek */ function 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);
}
Takže tu je všetko jednoduché. V nastaveniach odovzdáme skriptu nasledujúce parametre:
- var m1 = 150; - výška hlavičky v pixeloch,
- var m2 = 0; - odsadenie, keď hlavička už nie je viditeľná počas rolovania.
Ponuka funguje dobre, ale ak stránku znova načítate, ponuka sa zobrazí s prvou zarážkou Ak sa vyskytne takýto problém, po jednorazovom načítaní stránky musíte zavolať do ponuky. Ak to chcete urobiť, zmeňte kód volania funkcie z:
Funkcia setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachmentEvent ( "oncroll", marginMenuTop); ));
Na nasledujúci kód:
Funkcia setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachmentEvent ( "oncroll", marginMenuTop); ) marginMenuTop(); );
Po načítaní stránky ihneď zavoláme našu funkciu marginMenuTop, ktorá skontroluje pozíciu menu na stránke a aplikuje požadovaný štýl
Implementácia čiastočne opraveného menu pomocou doplnku Afixx jQuery od Twitter Bootstrap V pokračovaní tejto témy bol pre vás napísaný článok o implementácii takmer fixného menu pomocou pluginu jQuery Affix z rámca Twitter Bootstrap.
V poslednej dobe sa stal módnym trend: pevné menu pri posúvaní stránky. Zvyčajne ide o horizontálne menu na stránkach vstupnej stránky.
Funguje to tak, že keď sa stránka načíta, ponuka sa nachádza na určitom mieste na stránke (napríklad pod „hlavičkou“) a keď posúvate stránku, je fixovaná v hornej časti okna prehliadača a neposúva ako iný obsah.
Ak návštevník roluje po stránke nahor a dostane sa na začiatok stránky, ponuka sa vráti na svoje miesto. Návštevník, ktorý je kdekoľvek na stránke, ju teda môže použiť a prejsť na iné stránky lokality. To je veľmi pohodlné a je v súlade so zásadami použiteľnosti.
Teraz vám poviem, ako implementovať takéto menu tým, že strávite minimum času a bez toho, aby ste sa uchýlili k pomoci profesionálov.
Najprv musíme pre web pripojiť knižnicu jQuery
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Môžete sa pripojiť lokálne alebo cez Google.
Ak sa chcete pripojiť lokálne, musíte si stiahnuť súbor jQuery z oficiálnej webovej stránky 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)
V skripte vytvoríme 2 premenné, do ktorých uložíme hodnoty výšky hlavičky a odsadenia bloku s menu hore. Nemusí tam byť žiadne odsadenie (ako v tomto prípade). Potom napíšeme handler pre udalosť onScroll objektu window. V ňom pomocou metódy scrollTop() vypočítame vzdialenosť od hornej časti stránky k aktuálnej polohe posúvača. Na základe výpočtu umiestnime blok s menu.
To je všetko, vďaka jednoduchým riešeniam môžete dosiahnuť krásne pevné menu, ktoré sa vám nebude posúvať pri posúvaní hlavnej časti webu
Prvá vec, ktorú urobíme, je prilepiť náš HTML kód na miesto na vašej stránke, kde chcete vidieť menu.
- Domov
- WordPress
- HTML5 a CSS3
- PHP
Menu má priradenú predvolenú triedu, vďaka ktorej potom náš jquery dokáže určiť, že tento konkrétny blok je potom potrebné pripnúť navrch.
2. kód jQuery V hlavičke pred zatváraciu hlavičku vložte kód. Ako som písal vyššie, definuje blok s class default a po rolovaní mu priradí class fixed . V prípade potreby môžete zmeniť názvy tried. Ale buďte opatrní a nič nevynechajte, inak všetko jednoducho prestane fungovať. Musíte zmeniť jQuery, HTML a CSS.
$(document).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ menu. hasClass("default"))( $menu.fadeOut("fast",function())( $(this).removeClass("default") .addClass("fixed transbg") .fadeIn("fast") ; )) ; ) else if($(this).scrollTop()