Observera att om det finns enstaka citattecken i koden som omges av eko "", kommer de att behöva escapes, dvs. sätt ett omvänt snedstreck (\") framför var och en av dem, utan parentes förstås.
I allmänhet blev det som det blev. Du måste själv bestämma hur du specifikt ska koppla detta till ditt ämne - när du har tid är det till och med kul att "skaka din hjärna." Tack.
Lycka till! Vi ses snart på bloggsidans sidor
Du kanske är intresserad
WebPoint PRO är ett responsivt WordPress-tema med bred funktionalitet och kompetent teknisk sökmotoroptimering
Share42 - ett skript för att lägga till sociala nätverksknappar och bokmärken till webbplatsen (det finns ett alternativ för flytande panel)
När du skapar en webbplats finns det ofta ett behov av att hålla den horisontella menyn överblick, som innehåller huvudnavigeringen på webbplatsen. Metoden att "fixa" den horisontella menyn är bekväm ur besökarens synvinkel, som "alltid har navigering till hands", oavsett hur mycket du vrider ratten nedåt eller uppåt.
Fixa den horisontella menyn med CSS: position:fixed Å ena sidan är allt enkelt och lätt att lösa med hjälp av CSS på nolltid. Exempel på HTML-layout för en fast horisontell meny:
- Hem
- Nyheter
- Kontakter
- Sök
[sidans innehåll] [sidans sidfot]CSS-layout för en fast horisontell meny:
# menu-top-almost-fixed( position: fast; topp: 10px; vänster: 0; höjd: 30px; bredd: 100%; marginal: 0; )
Låt oss nu ställa in indraget för sidinnehållet lika med höjden på menyn:
#content (marginal-top: 30px;)
Och nu har vi "nästan" lyckats. Menyn är alltid synlig för besökaren. Men vad ska vi göra om vi har en webbplatshuvud i vår design, följt av själva menyn, och i rubriken har vi en logotyp, webbplatsmotto och banners.
Tja, vi kan fixa sidhuvudet genom att göra innehållsindraget lika högt som rubriken och menyn, tillsammans med indraget mellan dem. Men ett problem uppstår. Vi begränsar avsevärt visningsutrymmet för våra besökare att se sidinnehåll. Alternativet att överge kepsen passar oss inte alls.
Fixa en horisontell meny med javascript Så låt oss överväga alternativet när menyn "går" bakom sidans rubrik, men om besökaren aktivt rullar nedåt, är menyn "fixerad" längst upp och förblir på plats. Sidhuvudet är inte synligt. Om besökaren återvänder till sidhuvudet "blir" menyn på sin plats "bakom sidhuvudet". Till att börja med, här är den fullständiga HTML-layouten för ett exempel på sidlayout:
Webbplats logotyp Webbplats slogan Banner
- Hem
- Nyheter
- Kontakter
- Sök
[sidans innehåll] [sidans sidfot]Vår webbplatsmall består av flera typiska områden:
- webbplatsrubriker – #rubrik, höjd 150px
- horisontell meny – #meny-toppen-nästan-fixad– höjd 30px,
- huvudinformationsområdet på sidan – #innehåll,
- sidfot på webbplatsen - #sidfot.
Här är CSS-layouten:
#menu-top-almost-fixed( position: fix; margin: 0; left: 0; top: 150px; height: 30px; ) #header( display: block; height: 150px; overflow: hidden; position: relative; margin -bottom: 55px; ) #meny-toppen-nästan-fixad ul, #meny-top-nästan-fixed li( list-stil: ingen; marginal: 0; utfyllnad: 0; ) #meny-toppen-nästan-fixad ul ( display: block; text-align: center; width: 100%; float: left; ) #menu-top-almost-fixed ul li( display: inline; line-height: 30px; width: 120px; utfyllnad: 0 5px ; text-align: center;)
Låt oss först ställa in ett indrag från rubriken till innehållet lika med höjden på vår meny + ett litet indrag med en marginal för estetisk skönhet. #header ( margin-bottom: 55px; ) . Låt oss fixa vår meny precis bakom rubriken: #menu-top-almost-fixed( position: fixed; margin: 0; left: 0; top: 150px; height: 30px; ) .
Låt oss nu se till att när du rullar "fixar" menyn exakt högst upp på sidan. Låt oss lägga följande javascript mellan och:
Javascript:
var ml = 150; /* rubrikhöjd i pixlar */ var m2 = 2; /* indrag när rubriken inte längre är synlig under rullning */ var menuID = "meny-toppen-nästan-fixed"; /* id för den horisontella menyn för att fästa */ var menuOpacityOnChange = "0.7"; /* menytransparens vid rullning: 1 - ogenomskinlig, 0,5 - genomskinlig 0,0 - helt genomskinlig */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /*-funktion för bestämning av indraget från toppen av dokumentet till den aktuella positionen för rullningsrullaren */ funktion getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Netscape-kompatibel scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM-kompatibel scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /*-funktion som ställer in den övre utfyllnaden för en flytande fast horisontell meny beroende på rullningsposition och synlighetsrubriker */ function marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "odefinierad" && 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);
}
Du kan se ett exempel på implementeringen genom att följa den här länken och använda rullhjulet. Så allt är enkelt här. I inställningarna skickar vi följande parametrar till skriptet:
- var ml = 150; - rubrikhöjd i pixlar,
- var m2 = 2; - indrag när rubriken inte längre är synlig när du rullar,
- var menuID = "meny-toppen-nästan-fixed"; - ID för den horisontella menyn för att fästa,
- var menuOpacityOnChange = “0.7”; - menytransparens när du rullar:
- 1 - ogenomskinlig
- 0,5 – genomskinlig
- 0,0 - helt transparent
I den här versionen har vi "justerat" vår meny lite, och när vi rullar lägger vi till genomskinlighet till den. Ett mer klassiskt alternativ föreslår omedelbart sig själv, när vi inte ändrar menyns genomskinlighet, utan bara skapar en bakgrund för menyn i form av en bakgrund med menyfärgen och en lägre genomskinlig kant (där gradienten smidigt "övergår" ” från en ogenomskinlig färg till en transparent):
Låt oss ändra lite CSS-layout för vår horisontella fasta meny:
#menu-top-almost-fixed( position: fix; marginal: 0; vänster: 0; topp: 150px; höjd: 30px; bakgrund: url(./images/white-gradient-l.png) repetera nere till vänster-x ;)
Låt oss nu ge den modifierade javascript-koden, som vi kommer att placera mellan och:
Javascript:
var ml = 150; /* rubrikhöjd i pixlar */ var m2 = 0; /* indrag när rubriken inte längre är synlig under rullning */ var menuID = "meny-toppen-nästan-fixed"; /*-funktion för bestämning av indraget från toppen av dokumentet till den aktuella positionen för rullningsrullaren */ funktion getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "number" ) ( //Netscape-kompatibel scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM-kompatibel scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) return scrOfY; ) /*-funktion som ställer in den övre utfyllnaden för en flytande fast horisontell meny beroende på rullningsposition och synlighetsrubriker */ function marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "odefinierad" && 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);
}
Så allt är enkelt här. I inställningarna skickar vi följande parametrar till skriptet:
- var ml = 150; - rubrikhöjd i pixlar,
- var m2 = 0; - indrag när rubriken inte längre är synlig under rullning.
Menyn fungerar bra, men om du laddar om sidan visas menyn med första indraget Om det finns ett sådant problem, måste du ringa menyn efter att ha laddat sidan en gång. För att göra detta, ändra funktionsanropskoden från:
Funktion setMenuPosition())( if(typeof window.addEventListener != "odefinierad")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "odefinierad")( window. attachEvent ( "oscroll", marginMenuTop); ) );
Till följande kod:
Funktion setMenuPosition())( if(typeof window.addEventListener != "odefinierad")( window.addEventListener("scroll", marginMenuTop, false); ) else if(typeof window.attachEvent != "odefinierad")( window. attachEvent ( "onscroll", marginMenuTop); ) marginMenuTop(); );
Efter att sidan har laddats anropar vi omedelbart vår marginMenuTop-funktion, som kontrollerar menyns position på sidan och tillämpar önskad stil
Implementering av en delvis fixerad meny med Afixx jQuery-plugin från Twitter Bootstrap I fortsättningen på detta ämne skrevs en artikel för dig om att implementera en nästan fast meny med hjälp av plugin-programmet jQuery Affix från Twitter Bootstrap-ramverket.
Nyligen har en trend blivit på modet: en fast meny när man rullar en sida. Vanligtvis är detta en horisontell meny på målsidesajter.
Hur det fungerar är att när sidan laddas finns menyn på ett visst ställe på sidan (till exempel under "huvudet"), och när du rullar på sidan är det fixat högst upp i webbläsarfönstret och rullar inte som annat innehåll.
Om besökaren rullar upp på sidan och når början av sidan återgår menyn till sin plats. Således kan besökaren, var som helst på sidan, använda den och gå till andra sidor på sidan. Detta är mycket bekvämt och följer användbarhetsprinciperna.
Nu kommer jag att berätta för dig hur du implementerar en sådan meny genom att spendera ett minimum av din tid och utan att ta hjälp av proffs.
Först måste vi ansluta jQuery-biblioteket för webbplatsen
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Du kan ansluta lokalt eller via Google.
För att ansluta lokalt måste du ladda ner jQuery-filen från den officiella webbplatsen http://jquery.com/
CSS
JavaScript
I skriptet skapar vi 2 variabler där vi sparar värdena för höjden på rubriken och indragningen av blocket med menyn överst. Det kan inte finnas någon indragning (som i det här fallet). Sedan skriver vi en hanterare för onScroll-händelsen för window-objektet. I den, med hjälp av scrollTop()-metoden, beräknar vi avståndet från toppen av sidan till den aktuella positionen för rullningsrullaren. Baserat på beräkningen placerar vi blocket med menyn.
Det är allt, tack vare enkla lösningar kan du uppnå en vacker fast meny som inte rullar igenom när du rullar huvuddelen av webbplatsen
Det första vi kommer att göra är att klistra in vår HTML-kod på den plats på din sida där du vill se menyn.
- Hem
- WordPress
- HTML5&CSS3
- PHP
Menyn tilldelas standardklassen, tack vare vilken vår jquery sedan kan avgöra att just detta block då måste fästas till toppen.
2. jQuery-kod I rubriken, före det avslutande huvudet, infoga koden. Som jag skrev ovan definierar det ett block med klassstandard och efter att ha rullat tilldelar det en klass fix . Du kan ändra klassnamnen om du behöver det. Men var bara försiktig och missa ingenting, annars kommer allt helt enkelt att sluta fungera. Du måste ändra i jQuery, HTML och CSS.
$(document).ready(function())( var $menu = $("#menu"); $(window).scroll(function())( if ($(this).scrollTop() > 100 && $ menu. hasClass("default"))( $menu.fadeOut("snabb",function())( $(this).removeClass("default") .addClass("fixed transbg") .fadeIn("snabb") ; )) ; ) else if($(this).scrollTop()