Vezměte prosím na vědomí, že pokud jsou v kódu jednoduché uvozovky uzavřené v echo "" , bude nutné je zakódovat, tj. před každou z nich vložte zpětné lomítko (\"), samozřejmě bez závorek.
Obecně to dopadlo, jak to dopadlo. Budete se muset sami rozhodnout, jak to konkrétně připojit ke svému tématu - když máte čas, je dokonce zábavné „rozbít mozek“. Děkuji.
Hodně štěstí! Brzy se uvidíme na stránkách blogu
Mohlo by vás to zajímat
WebPoint PRO je responzivní téma WordPress se širokou funkčností a kompetentní technickou optimalizací pro vyhledávače
Share42 - skript pro přidávání tlačítek a záložek sociálních sítí na web (existuje možnost plovoucího panelu)
Při tvorbě webu je často potřeba mít na očích horizontální menu, které obsahuje hlavní navigaci webu. Způsob „opravy“ horizontálního menu je pohodlný z pohledu návštěvníka, který „má navigaci vždy po ruce“, ať už točíte kolečkem dolů nebo nahoru.
Oprava horizontálního menu pomocí CSS: position:fixed Na jednu stranu je vše jednoduché a snadno řešitelné pomocí CSS během okamžiku. Příklad rozvržení HTML pevné vodorovné nabídky:
- Domov
- Zprávy
- Kontakty
- Vyhledávání
[obsah stránky] [patička webu]CSS rozložení pevné horizontální nabídky:
# menu-top-almost-fixed( position: fixed; top: 10px; left: 0; height: 30px; width: 100%; margin: 0; )
Nyní nastavíme odsazení obsahu stránky na výšku nabídky:
#content ( margin-top: 30px; )
A nyní se nám to „téměř“ podařilo. Nabídka je vždy viditelná pro návštěvníka. Co bychom ale měli dělat, když máme v designu hlavičku webu, následuje samotné menu a v hlavičce máme logo, motto webu a bannery.
Záhlaví webu můžeme opravit tak, že odsazení obsahu bude mít stejnou výšku jako záhlaví a nabídka spolu s odsazením mezi nimi. Ale vyvstává problém. Výrazně omezujeme prohlížecí prostor pro naše návštěvníky pro prohlížení obsahu stránky. Možnost opustit čepici nám vůbec nevyhovuje.
Oprava horizontálního menu pomocí javascriptu Zvažme tedy možnost, kdy nabídka „jde“ za záhlaví webu, ale pokud návštěvník aktivně roluje dolů, nabídka je „pevná“ nahoře a zůstává na svém místě. Záhlaví webu není vidět. Pokud se návštěvník vrátí do záhlaví stránky, na jeho místě „za záhlavím webu“ se „stane“ nabídka. Pro začátek je zde kompletní rozvržení HTML ukázkového rozvržení stránky:
Logo webové stránky Slogan webové stránky Banner
- Domov
- Zprávy
- Kontakty
- Vyhledávání
[obsah stránky] [patička webu]Naše šablona webu se skládá z několika typických oblastí:
- záhlaví stránek – #záhlaví, výška 150px
- horizontální menu - #menu-top-téměř opraveno– výška 30px,
- hlavní informační oblast stránky – #obsah,
- zápatí webu - #zápatí.
Zde je rozložení CSS:
#menu-top-almost-fixed( pozice: pevná; okraj: 0; vlevo: 0; nahoře: 150px; výška: 30px; ) #header( zobrazení: blok; výška: 150px; přetečení: skryté; pozice: relativní; okraj -dole: 55px; ) #menu-top-téměř-pevná ul, #menu-top-téměř-pevná li( styl seznamu: žádný; okraj: 0; odsazení: 0; ) #menu-top-téměř-pevná 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 ; zarovnání textu: na střed; )
Nejprve nastavme odsazení od záhlaví k obsahu rovnající se výšce našeho menu + malé odsazení s okrajem pro estetickou krásu. #header ( margin-bottom: 55px; ) . Opravme naši nabídku hned za záhlavím: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
Nyní se ujistěte, že při rolování se nabídka „opraví“ přesně v horní části stránky. Vložme následující javascript mezi a:
Javascript:
var m1 = 150; /* výška záhlaví v pixelech */ var m2 = 2; /* odsazení, když už není záhlaví při rolování vidět */ var menuID = "menu-top-almost-fixed"; /* id vodorovné nabídky k připnutí */ var menuOpacityOnChange = "0.7"; /* průhlednost menu při rolování: 1 - neprůhledné, 0,5 - průsvitné 0,0 - zcela průhledné */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* funkce pro určení odsazení v různých prohlížečích od horní části dokumentu k aktuální pozici posuvníku */ funkce getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "číslo" ) ( //Vyhovuje Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //V souladu s DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkce, která nastavuje horní odsazení pro plovoucí pevná horizontální nabídka v závislosti na poloze posuvníku a viditelnosti záhlaví */ 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);
}
Příklad implementace můžete vidět kliknutím na tento odkaz a pomocí rolovacího kolečka. Zde je tedy vše jednoduché. V nastavení předáme skriptu následující parametry:
- var m1 = 150; - výška záhlaví v pixelech,
- var m2 = 2; - odsazení, když při rolování již není vidět záhlaví,
- var menuID = “nahoru menu-téměř opraveno”; - id horizontální nabídky k připnutí,
- var menuOpacityOnChange = "0,7"; - průhlednost menu při rolování:
- 1 - neprůhledné
- 0,5 – průsvitné
- 0,0 - zcela transparentní
V této verzi jsme naše menu trochu „vyladili“ a při rolování mu přidáváme průsvitnost. Okamžitě se nabízí klasičtější možnost, kdy neměníme průhlednost menu, ale jednoduše uděláme pozadí menu v podobě pozadí s barvou menu a spodním průsvitným okrajem (ve kterém přechod plynule „přechází“ ” z neprůhledné barvy na průhlednou):
Změňme trochu rozvržení CSS pro naši horizontální pevnou nabídku:
#menu-top-almost-fixed( pozice: pevná; okraj: 0; vlevo: 0; nahoře: 150px; výška: 30px; pozadí: url(./images/white-gradient-l.png) vlevo dole repeat-x ;)
Nyní dáme upravený kód javascriptu, který umístíme mezi a:
Javascript:
var m1 = 150; /* výška záhlaví v pixelech */ var m2 = 0; /* odsazení, když už není záhlaví při rolování vidět */ var menuID = "menu-top-almost-fixed"; /* funkce pro určení odsazení v různých prohlížečích od horní části dokumentu k aktuální pozici posuvníku */ funkce getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "číslo" ) ( //Vyhovuje Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //V souladu s DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkce, která nastavuje horní odsazení pro plovoucí pevná horizontální nabídka v závislosti na poloze posuvníku a viditelnosti záhlaví */ 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);
}
Zde je tedy vše jednoduché. V nastavení předáme skriptu následující parametry:
- var m1 = 150; - výška záhlaví v pixelech,
- var m2 = 0; - odsazení, když záhlaví již není při rolování vidět.
Nabídka funguje dobře, ale pokud stránku znovu načtete, zobrazí se nabídka s první odrážkou Pokud se vyskytne takový problém, musíte po načtení stránky vyvolat nabídku. Chcete-li to provést, změňte kód volání funkce z:
Funkce setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachmentEvent ( "oncroll", marginMenuTop); ));
Na následující kód:
Funkce setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachmentEvent ( "oncroll", marginMenuTop); ) marginMenuTop(); );
Po načtení stránky okamžitě zavoláme naši funkci marginMenuTop, která zkontroluje pozici nabídky na stránce a aplikuje požadovaný styl
Implementace částečně opravené nabídky pomocí pluginu Afixx jQuery od Twitter Bootstrap V pokračování tohoto tématu pro vás byl napsán článek o implementaci téměř pevného menu pomocí pluginu jQuery Affix z rámce Twitter Bootstrap.
V poslední době se stal módou trend: pevné menu při rolování stránky. Obvykle se jedná o horizontální nabídku na stránkách vstupní stránky.
Funguje to tak, že když se stránka načte, nabídka se nachází na určitém místě na stránce (například pod „záhlavím“) a když stránku posouváte, je pevně nastavena v horní části okna prohlížeče a neposouvá se jako jiný obsah.
Pokud návštěvník posouvá stránku nahoru a dostane se na začátek stránky, nabídka se vrátí na své místo. Návštěvník, který je kdekoli na stránce, ji tedy může použít a přejít na jiné stránky webu. To je velmi pohodlné a odpovídá to zásadám použitelnosti.
Nyní vám řeknu, jak implementovat takové menu tím, že strávíte minimum času a aniž byste se uchýlili k pomoci profesionálů.
Nejprve musíme pro web připojit knihovnu jQuery
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Můžete se připojit lokálně nebo přes Google.
Chcete-li se připojit lokálně, musíte si stáhnout soubor jQuery z oficiálního webu 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)
Ve skriptu vytvoříme 2 proměnné, do kterých uložíme hodnoty výšky záhlaví a odsazení bloku s nabídkou nahoře. Nemusí tam být žádné odsazení (jako v tomto případě). Poté napíšeme handler pro událost onScroll objektu window. V něm pomocí metody scrollTop() vypočítáme vzdálenost od horní části stránky k aktuální poloze posuvníku. Na základě výpočtu umístíme blok s nabídkou.
To je vše, díky jednoduchým řešením můžete dosáhnout krásného pevného menu, které se nebude procházet při rolování hlavní částí webu
První věc, kterou uděláme, je vložit náš HTML kód na místo na vašem webu, kde chcete vidět nabídku.
- Domov
- WordPress
- HTML5 a CSS3
- PHP
Menu je přiřazena výchozí třída, díky které pak náš jquery dokáže určit, že tento konkrétní blok je pak potřeba připnout nahoru.
2. Kód jQuery Do hlavičky před zavírací hlavičku vložte kód. Jak jsem psal výše, definuje blok s class default a po rolování mu přiřadí class fixed . V případě potřeby můžete změnit názvy tříd. Ale buďte opatrní a nic nevynechejte, jinak prostě všechno přestane fungovat. Musíte změnit 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()