Upoštevajte, da če so v kodi v echo "" enojni narekovaji, jih je treba ubežati, tj. pred vsako od njih postavite poševnico nazaj (\"), seveda brez oklepajev.
Na splošno se je izkazalo, kot se je izkazalo. Sami se boste morali odločiti, kako to posebej pripeti na svojo temo - ko imate čas, je celo zabavno "razbijati možgane". Hvala vam.
Srečno! Kmalu se vidimo na straneh spletnega dnevnika
Morda vas bo zanimalo
WebPoint PRO je odzivna WordPress tema s široko funkcionalnostjo in kompetentno tehnično optimizacijo za iskalnike
Share42 - skript za dodajanje gumbov za družabna omrežja in zaznamkov na spletno mesto (obstaja možnost plavajoče plošče)
Pri izdelavi spletnega mesta je pogosto treba imeti v vidu vodoravni meni, ki vsebuje glavno navigacijo spletnega mesta. Način »fiksiranja« vodoravnega menija je primeren z vidika obiskovalca, ki »ima navigacijo vedno pri roki«, ne glede na to, koliko vrtite kolesce gor ali dol.
Popravljanje vodoravnega menija s CSS: position:fixed Po eni strani je vse preprosto in enostavno rešiti s pomočjo CSS v hipu. Primer postavitve HTML fiksnega vodoravnega menija:
- domov
- Novice
- Kontakti
- Iskanje
[vsebina strani] [noga spletnega mesta]CSS postavitev fiksnega vodoravnega menija:
# menu-top-almost-fixed( položaj: fiksen; zgoraj: 10px; levo: 0; višina: 30px; širina: 100%; rob: 0; )
Zdaj pa nastavimo zamik za vsebino strani, ki je enak višini menija:
#content ( margin-top: 30px; )
In zdaj nam je "skoraj" uspelo. Jedilni list je obiskovalcu vedno viden. Toda kaj naj storimo, če imamo v svoji zasnovi glavo spletnega mesta, ki mu sledi sam meni, v glavi pa imamo logotip, moto spletnega mesta in pasice.
No, glavo spletnega mesta lahko popravimo tako, da je zamik vsebine enak višini glave in menija, skupaj z zamikom med njima. Toda pojavi se težava. Našim obiskovalcem močno omejujemo prostor za ogled vsebine strani. Možnost opustitve kapice nam sploh ne ustreza.
Popravljanje vodoravnega menija z uporabo javascripta Torej, razmislimo o možnosti, ko meni "gre" za glavo spletnega mesta, če pa se obiskovalec aktivno pomika navzdol, je meni "fiksiran" na vrhu in ostane na mestu. Glava spletnega mesta ni vidna. Če se obiskovalec vrne na glavo strani, meni »postane« na svojem mestu »za glavo strani«. Za začetek je tukaj celotna postavitev HTML primera postavitve strani:
Logotip spletne strani Slogan spletne strani Pasica
- domov
- Novice
- Kontakti
- Iskanje
[vsebina strani] [noga spletnega mesta]Naša predloga spletnega mesta je sestavljena iz več tipičnih področij:
- glave spletnega mesta – #glava, višina 150px
- horizontalni meni – #menu-top-skoraj-popravljeno– višina 30px,
- glavno informacijsko področje strani – #vsebina,
- noga spletnega mesta - #noga.
Tukaj je postavitev CSS:
#menu-top-almost-fixed(položaj: fiksen; rob: 0; levo: 0; vrh: 150px; višina: 30px; ) #header(prikaz: blok; višina: 150px; overflow: skrito; položaj: relativno; rob -bottom: 55px; ) #menu-top-almost-fixed ul, #menu-top-almost-fixed li( list-style: none; margin: 0; padding: 0; ) #menu-top-almost-fixed 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 ; poravnava besedila: sredina; )
Najprej nastavimo zamik od glave do vsebine enak višini našega menija + majhen zamik z robom za estetsko lepoto. #header (margin-bottom: 55px;) . Popravimo naš meni tik za glavo: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
Sedaj pa poskrbimo, da se meni med drsenjem "popravi" točno na vrhu strani. Med in vstavimo naslednji javascript:
Javascript:
var m1 = 150; /* višina glave v slikovnih pikah */ var m2 = 2; /* zamik, ko glava med drsenjem ni več vidna */ var menuID = "menu-top-almost-fixed"; /* id vodoravnega menija za pripenjanje */ var menuOpacityOnChange = "0,7"; /* prosojnost menija pri drsenju: 1 - neprozorno, 0,5 - prosojno 0,0 - popolnoma prosojno */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* funkcija za določanje zamika med brskalniki od vrha dokumenta do trenutnega položaja drsnega drsnika */ funkcija getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Skladen z Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //Skladen z DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkcija, ki nastavi oblazinjenje vrha za lebdeče fiksni vodoravni meni, odvisen od položaja drsnika in vidnih glav */ funkcija 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);
}
Primer izvedbe si lahko ogledate na tej povezavi in s kolescem za pomikanje. Torej, tukaj je vse preprosto. V nastavitvah skriptu posredujemo naslednje parametre:
- var m1 = 150; - višina glave v slikovnih pikah,
- var m2 = 2; - zamik, ko glava med listanjem ni več vidna,
- var menuID = “menu-top-almost-fixed”; - ID vodoravnega menija za pripenjanje,
- var menuOpacityOnChange = “0,7”; - preglednost menija pri listanju:
- 1 - neprozoren
- 0,5 – prosojen
- 0,0 - popolnoma prozoren
V tej različici smo naš meni malo “uštimali” in mu pri listanju dodali prosojnost. Takoj se ponudi bolj klasična možnost, ko meniju ne spreminjamo prosojnosti, temveč preprosto naredimo ozadje menija v obliki ozadja z barvo menija in spodnjo prosojno obrobo (v kateri preliv gladko »prehaja« ” iz neprozorne barve v prozorno):
Spremenimo malo postavitev CSS za naš horizontalni fiksni meni:
#menu-top-almost-fixed(position: fixed; margin: 0; left: 0; top: 150px; height: 30px; background: url(./images/white-gradient-l.png) bottom left repeat-x ;)
Zdaj pa dajmo spremenjeno kodo javascript, ki jo bomo postavili med in:
Javascript:
var m1 = 150; /* višina glave v slikovnih pikah */ var m2 = 0; /* zamik, ko glava med drsenjem ni več vidna */ var menuID = "menu-top-almost-fixed"; /* funkcija za določanje zamika med brskalniki od vrha dokumenta do trenutnega položaja drsnega drsnika */ funkcija getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Skladen z Netscape scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //Skladen z DOM scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /* funkcija, ki nastavi oblazinjenje vrha za lebdeče fiksni vodoravni meni, odvisen od položaja drsnika in vidnih glav */ funkcija 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);
}
Torej, tukaj je vse preprosto. V nastavitvah skriptu posredujemo naslednje parametre:
- var m1 = 150; - višina glave v slikovnih pikah,
- var m2 = 0; - zamik, ko glava med listanjem ni več vidna.
Meni deluje dobro, vendar če ponovno naložite stran, se meni prikaže s prvo alineo Če pride do takšne težave, morate po enkratnem nalaganju strani poklicati meni. Če želite to narediti, spremenite kodo klica funkcije iz:
Funkcija setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachEvent ( "onscroll", marginMenuTop); ) );
Na naslednjo kodo:
Funkcija setMenuPosition())( if(typeof window.addEventListener != "undefined")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "undefined")( window. attachEvent ( "onscroll", marginMenuTop); ) marginMenuTop(); );
Ko se stran naloži, takoj pokličemo našo funkcijo marginMenuTop, ki bo preverila položaj menija na strani in uporabila želeni slog
Implementacija delno popravljenega menija z uporabo vtičnika Afixx jQuery iz storitve Twitter Bootstrap V nadaljevanju te teme je bil za vas napisan članek o implementaciji skoraj fiksnega menija z uporabo vtičnika jQuery Affix iz ogrodja Twitter Bootstrap.
V zadnjem času je postal moden trend: fiksni meni pri listanju strani. Običajno je to vodoravni meni na spletnih mestih ciljne strani.
Deluje tako, da se meni, ko se stran naloži, nahaja na določenem mestu na strani (na primer pod »glavo«), ko se pomikate po strani, pa je fiksiran na vrhu okna brskalnika in se ne pomika kot druga vsebina.
Če se obiskovalec pomakne po strani navzgor in pride do začetka strani, se meni vrne na svoje mesto. Tako lahko obiskovalec, ki je kjer koli na strani, to uporabi in gre na druge strani spletnega mesta. To je zelo priročno in v skladu z načeli uporabnosti.
Zdaj vam bom povedal, kako izvesti tak meni, tako da porabite najmanj časa in ne da bi se zatekli k pomoči strokovnjakov.
Najprej moramo povezati knjižnico jQuery za spletno mesto
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Lahko se povežete lokalno ali prek Googla.
Za lokalno povezavo morate prenesti datoteko jQuery z uradne spletne strani 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 skripti ustvarimo 2 spremenljivki, v kateri shranimo vrednosti višine glave in zamika bloka z menijem na vrhu. Morda ni vdolbine (kot v tem primeru). Nato napišemo obravnavo za dogodek onScroll okenskega objekta. V njem z metodo scrollTop() izračunamo razdaljo od vrha strani do trenutnega položaja drsnega drsnika. Na podlagi izračuna pozicioniramo blok z menijem.
To je vse, zahvaljujoč preprostim rešitvam lahko dosežete čudovit fiksni meni, ki se ne bo pomikal med pomikanjem po glavnem delu spletnega mesta
Prva stvar, ki jo bomo naredili, je, da prilepimo kodo HTML na mesto na vašem spletnem mestu, kjer želite videti meni.
- domov
- WordPress
- HTML5&CSS3
- PHP
Meniju je dodeljen privzeti razred, zahvaljujoč kateremu lahko naš jquery nato ugotovi, da je treba ta določen blok nato pripeti na vrh.
2. Koda jQuery V glavo, pred zaključno glavo, vstavite kodo. Kot sem zapisal zgoraj, definira blok s privzetim razredom in mu po premikanju dodeli razred fiksni. Imena razredov lahko spremenite, če jih potrebujete. Vendar bodite previdni in ničesar ne zamudite, sicer bo vse preprosto nehalo delovati. Spremeniti morate jQuery, HTML in CSS.
$(document).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ meni. hasClass("default"))( $menu.fadeOut("fast",function())( $(this).removeClass("default") .addClass("fixed transbg") .fadeIn("fast") ; )) ; ) else if($(this).scrollTop()