Хэрэв echo ""-д хавсаргасан кодын ганц хашилт байгаа бол тэдгээрээс зайлсхийх хэрэгтэй болно гэдгийг анхаарна уу, өөрөөр хэлбэл. Мэдээжийн хэрэг, тэдгээрийн өмнө хаалтгүйгээр урвуу зураас (\") тавь.
Ер нь бол болсон шигээ болсон. Та үүнийг өөрийн сэдэвт хэрхэн тусгайлан хавсаргахаа өөрөө шийдэх хэрэгтэй болно - цаг гарвал "тархиа дарах" нь бүр хөгжилтэй байдаг. Баярлалаа.
Чамд амжилт хүсье! Удахгүй блог сайтын хуудсууд дээр уулзацгаая
Та сонирхож магадгүй юм
WebPoint PRO бол өргөн ажиллагаатай, чадварлаг техникийн хайлтын системийн оновчлол бүхий мэдрэмжтэй WordPress загвар юм
Share42 - сайтад нийгмийн сүлжээний товчлуурууд болон хавчуурга нэмэх скрипт (хөвөгч самбарын сонголт байдаг)
Вэбсайт үүсгэхдээ сайтын үндсэн чиглүүлэгчийг агуулсан хэвтээ цэсийг байнга харах шаардлагатай байдаг. Хэвтээ цэсийг "засах" арга нь дугуйг хэчнээн доош, дээшээ эргүүлсэн ч хамаагүй "навигац үргэлж гарт байдаг" зочдын хувьд тохиромжтой байдаг.
CSS-ээр хэвтээ цэсийг засах: байрлал: тогтмол Нэг талаас, бүх зүйл энгийн бөгөөд CSS ашиглан богино хугацаанд шийдвэрлэхэд хялбар байдаг. Тогтмол хэвтээ цэсийн HTML байршлын жишээ:
- гэр
- Мэдээ
- Харилцагчид
- Хайх
[хуудасны агуулга] [сайтын хөл хэсэг]Тогтмол хэвтээ цэсийн CSS зохион байгуулалт:
# цэс-дээд-бараг-тогтмол(байрлал: тогтмол; дээд: 10px; зүүн: 0; өндөр: 30px; өргөн: 100%; зах: 0; )
Одоо хуудасны агуулгын догол мөрийг цэсийн өндөртэй тэнцүү болгоцгооё.
#контент (дээд талын захын зай: 30px; )
Одоо бид "бараг" амжилтанд хүрсэн. Цэс нь зочдод үргэлж харагддаг. Гэхдээ дизайн дээрээ сайтын толгой хэсэг, дараа нь цэс өөрөө, толгой хэсэгт лого, сайтын уриа, баннер байвал яах ёстой вэ.
За, бид контентын догол мөрийг толгой болон цэстэй тэнцүү болгож, тэдгээрийн хоорондох доголын хамт сайтын толгой хэсгийг засах боломжтой. Гэхдээ асуудал үүсдэг. Бид зочдод хуудасны агуулгыг үзэхийн тулд үзэх зайг ихээхэн хязгаарладаг. Малгайгаа орхих сонголт бидэнд огт тохирохгүй байна.
Javascript ашиглан хэвтээ цэсийг засах Тиймээс, цэс нь сайтын толгойн ард "явж" байх үед сонголтыг авч үзье, гэхдээ хэрэв зочин идэвхтэй доош гүйлгэж байвал цэс дээд талд "засах" бөгөөд байрандаа хэвээр үлдэнэ. Сайтын толгой хэсэг харагдахгүй байна. Хэрэв зочин хуудасны толгой хэсэгт буцаж очвол цэс нь "сайтын толгойн ард" байрандаа "болно". Эхлэхийн тулд, жишээ хуудасны байршлын бүрэн HTML байршлыг энд харуулав.
Вэб сайтын лого Вэб сайт уриа Баннер
- гэр
- Мэдээ
- Харилцагчид
- Хайх
[хуудасны агуулга] [сайтын хөл хэсэг]Манай вэбсайтын загвар нь хэд хэдэн ердийн хэсгээс бүрдэнэ:
- сайтын толгой хэсэг - #толгой, өндөр 150px
- хэвтээ цэс - # цэсний дээд хэсэгт бараг л тогтсон- өндөр 30px,
- хуудасны мэдээллийн үндсэн хэсэг - #контент,
- сайтын хөл - #хөл.
CSS-ийн зохион байгуулалт энд байна:
#цэс-дээд-бараг-тогтмол( байрлал: тогтмол; зах: 0; зүүн: 0; дээд: 150 пиксел; өндөр: 30 пиксел; ) # толгой( дэлгэц: блок; өндөр: 150 пиксел; халих: далд; байрлал: харьцангуй; захын зай -доод: 55px; ) #цэс-дээд-бараг-тогтмол ul, #цэс-дээд-бараг-тогтмол li( list-style: none; margin: 0; padding: 0; ) #menu-top-almost-fixed ul (дэлгэц: блок; текстийг зэрэгцүүлэх: голд; өргөн: 100%; хөвөх: зүүн; ) #цэс-дээд-бараг тогтмол ul li(дэлгэц: inline; шугамын өндөр: 30px; өргөн: 120px; дүүргэлт: 0 5px ; текстийг зэрэгцүүлэх: төвд; )
Эхлээд цэсийнхээ өндөртэй тэнцэх контентын толгойноос догол мөр + гоо зүйн гоо сайхны хувьд жижиг догол оруулъя. #толгой (доод захын зай: 55px; ). Гарчгийн ард цэсээ засъя: #menu-top-almost-fixed( байрлал: тогтмол; захын зай: 0; зүүн: 0; дээд: 150px; өндөр: 30px; ) .
Одоо гүйлгэх үед цэс яг хуудасны дээд талд "засаж" байгаа эсэхийг шалгацгаая. Дараах javascript-ийг болон хоёрын хооронд оруулъя:
Javascript:
var m1 = 150; /* толгой хэсгийн өндөр пикселээр */ var m2 = 2; /* гүйлгэх үед толгой хэсэг харагдахаа больсон догол */ var menuID = "menu-top-almost-fixed"; /* бэхлэх хэвтээ цэсийн id */ var menuOpacityOnChange = "0.7"; /* гүйлгэх үед цэсийн ил тод байдал: 1 - тунгалаг бус, 0.5 - тунгалаг 0.0 - бүрэн ил тод */ var menuOpacityOnChangeIE = menuOpacityOnChange * 100; /* баримтын дээд хэсгээс гүйлгэх гүйлгээний одоогийн байрлал хүртэлх догол мөрийг хөтчөөр тодорхойлох функц */ функц getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "тоо" ) ( //Netscape нийцтэй scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM нийцтэй scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) буцах scrOfY; ) /* хөвөгч файлын дээд дэвсгэрийг тохируулдаг функц гүйлгэх байрлал болон харагдах байдлын толгой хэсгээс хамааран тогтмол хэвтээ цэс */ функц marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "тодорхойгүй" && s)( if (дээд) +м2< 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);
}
Та энэ холбоосыг дагаж, гүйлгэх дугуй ашиглан хэрэгжүүлэлтийн жишээг харж болно. Тиймээс энд бүх зүйл энгийн байдаг. Тохиргоонд бид дараах параметрүүдийг скрипт рүү дамжуулдаг.
- var m1 = 150; - толгой хэсгийн өндөр пикселээр,
- var m2 = 2; - гүйлгэх үед толгой хэсэг харагдахаа больсон догол,
- var menuID = "цэс дээд талд бараг л тогтсон"; - бэхлэх хэвтээ цэсийн id,
- var menuOpacityOnChange = “0.7”; - гүйлгэх үед цэсийн ил тод байдал:
- 1 - тунгалаг
- 0.5 - тунгалаг
- 0.0 - бүрэн ил тод
Энэ хувилбарт бид цэсээ бага зэрэг "тохируулсан" бөгөөд гүйлгэх үед бид түүнд тунгалаг байдлыг нэмж өгдөг. Цэсийн ил тод байдлыг өөрчлөхгүй, харин цэсний өнгө, доод тунгалаг хүрээ бүхий дэвсгэр хэлбэрээр цэсний дэвсгэрийг хийхэд илүү сонгодог сонголт шууд гарч ирнэ (үүний градиент жигд шилждэг). ” тунгалаг өнгөнөөс тунгалаг хүртэл):
Хэвтээ тогтмол цэсийнхээ CSS-ийн бүдүүвчийг бага зэрэг өөрчилье:
#цэс-дээд-бараг-тогтмол( байрлал: тогтмол; захын зай: 0; зүүн: 0; дээд: 150px; өндөр: 30px; дэвсгэр: url(./images/white-gradient-l.png) зүүн доод давталт-x ;)
Одоо өөрчилсөн javascript кодыг өгцгөөе, бид үүнийг болон хооронд байрлуулна:
Javascript:
var m1 = 150; /* толгой хэсгийн өндөр пикселээр */ var m2 = 0; /* гүйлгэх үед толгой хэсэг харагдахаа больсон догол */ var menuID = "menu-top-almost-fixed"; /* баримтын дээд хэсгээс гүйлгэх гүйлгээний одоогийн байрлал хүртэлх догол мөрийг хөтчөөр тодорхойлох функц */ функц getScrollTop() ( var scrOfY = 0; if(typeof(window.pageYOffset) == "тоо" ) ( //Netscape нийцтэй scrOfY = window.pageYOffset ; ) else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) ( //DOM нийцтэй scrOfY = document.body.scrollTop; ) else if(document.documentElement && (document.documentElement. scrollLeft || document.documentElement.scrollTop)) ( //IE6 Strict scrOfY = document.documentElement.scrollTop; ) буцах scrOfY; ) /* хөвөгч файлын дээд дэвсгэрийг тохируулдаг функц гүйлгэх байрлал болон харагдах байдлын толгой хэсгээс хамааран тогтмол хэвтээ цэс */ функц marginMenuTop() ( var top = getScrollTop(); var s = document.getElementById(menuID); if(typeof s != "тодорхойгүй" && s)( if (дээд) +м2< 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);
}
Тиймээс энд бүх зүйл энгийн байдаг. Тохиргоонд бид дараах параметрүүдийг скрипт рүү дамжуулдаг.
- var m1 = 150; - толгой хэсгийн өндөр пикселээр,
- var m2 = 0; - гүйлгэх явцад толгой хэсэг харагдахаа больсон догол мөр.
Цэс нь сайн ажилладаг, гэхдээ та хуудсыг дахин ачаалвал цэс эхний догол мөртэй гарч ирнэ Хэрэв ийм асуудал гарвал хуудсыг нэг удаа ачаалсны дараа цэс рүү залгах хэрэгтэй. Үүнийг хийхийн тулд функц дуудлагын кодыг дараахаас өөрчилнө үү:
Функц setMenuPosition())( if(typeof window.addEventListener != "тодорхойгүй")( window.addEventListener("scroll", marginMenuTop, худал); ) else if(typeof window.attachEvent != "тодорхойгүй")( цонх. attachEvent ("onscroll", marginMenuTop); ) );
Дараах код руу:
Функц setMenuPosition())( if(typeof window.addEventListener != "тодорхойгүй")( window.addEventListener("scroll", marginMenuTop, худал); ) else if(typeof window.attachEvent != "тодорхойгүй")( цонх. attachEvent ("onscroll", marginMenuTop); ) marginMenuTop(); );
Хуудсыг ачаалсны дараа бид нэн даруй marginMenuTop функцийг дууддаг бөгөөд энэ нь хуудсан дээрх цэсийн байрлалыг шалгаж, хүссэн хэв маягийг ашиглах болно.
Twitter Bootstrap-ийн Afixx jQuery залгаасыг ашиглан хэсэгчлэн тогтсон цэсийг хэрэгжүүлж байна Энэ сэдвийн үргэлжлэлд Twitter Bootstrap фреймворкийн jQuery Affix залгаасыг ашиглан бараг тогтмол цэсийг хэрэгжүүлэх талаар танд зориулж нийтлэл бичсэн.
Саяхан нэгэн чиг хандлага моод болж байна: хуудсыг гүйлгэх үед тогтмол цэс. Ихэвчлэн энэ нь Landing Page сайт дээрх хэвтээ цэс юм.
Энэ нь хэрхэн ажилладаг вэ гэвэл хуудсыг ачаалах үед цэс нь хуудасны тодорхой газар (жишээлбэл, "толгой" доор) байрладаг бөгөөд хуудсыг гүйлгэх үед хөтчийн цонхны дээд хэсэгт бэхлэгдсэн байдаг. бусад контент шиг гүйлгэдэггүй.
Хэрэв зочин хуудсыг дээш гүйлгэж, хуудасны эхэнд хүрвэл цэс байрандаа буцаж ирнэ. Тиймээс, зочин хуудасны аль ч хэсэгт байхдаа үүнийг ашиглаж, сайтын бусад хуудсууд руу очиж болно. Энэ нь маш тохиромжтой бөгөөд ашиглалтын зарчимд нийцдэг.
Одоо би танд хамгийн бага цаг зарцуулж, мэргэжлийн хүмүүсийн тусламж авахгүйгээр ийм цэсийг хэрхэн хэрэгжүүлэхийг танд хэлэх болно.
Эхлээд бид сайтын jQuery номын санг холбох хэрэгтэй
<
script src=
"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"
>
Та дотооддоо эсвэл Google-ээр холбогдож болно.
Орон нутагт холбогдохын тулд та jQuery файлыг 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)
Скрипт дээр бид 2 хувьсагчийг үүсгэдэг бөгөөд бид толгойн өндөр, блокийн доголын утгыг дээд талд байгаа цэсээр хадгалдаг. Догол байхгүй байж болно (энэ тохиолдолд). Дараа нь бид цонхны объектын onScroll үйл явдлын зохицуулагчийг бичнэ. Үүнд, scrollTop() аргыг ашиглан бид хуудасны дээд хэсгээс гүйлгэх гүйлгэгчийн одоогийн байрлал хүртэлх зайг тооцоолно. Тооцоолол дээр үндэслэн бид блокыг цэстэй хамт байрлуулна.
Энэ бол энгийн шийдлүүдийн ачаар та сайтын үндсэн хэсгийг гүйлгэх үед гүйлгэх боломжгүй сайхан тогтмол цэсийг олж авах боломжтой.
Бидний хийх хамгийн эхний зүйл бол цэсийг харахыг хүссэн сайтынхаа HTML кодыг оруулах явдал юм.
- гэр
- WordPress
- HTML5 & CSS3
- PHP
Цэс нь анхдагч ангиллаар хуваарилагдсан бөгөөд үүний ачаар jQuery энэ блокыг дээд талд нь бэхлэх шаардлагатайг тодорхойлж чадна.
2. jQuery код Толгой хэсэгт хаалтын толгойноос өмнө кодыг оруулна уу. Миний дээр бичсэнчлэн, энэ нь анхдагч класс бүхий блокыг тодорхойлж, гүйлгэсний дараа үүнийг fixed ангиллаар оноодог. Шаардлагатай бол ангийн нэрийг өөрчилж болно. Гэхдээ болгоомжтой байгаарай, юу ч бүү алдаарай, эс тэгвээс бүх зүйл зүгээр л ажиллахаа болино. Та jQuery, HTML болон CSS-ийг өөрчлөх хэрэгтэй.
$(баримт).бэлэн(функц())( var $цэс = $("#цэс"); $(цонх).scroll(функц())( хэрэв ($(энэ).scrollTop() > 100 && $ цэс. hasClass("өгөгдмөл"))( $menu.fadeOut("хурдан",функц())( $(энэ).removeClass("өгөгдмөл") .addClass("тогтмол дамжуулалт") .fadeIn("хурдан") ; )) ; ) if($(энэ).scrollTop()