JS Affix


ULASHISH

JS Affix (affix.js)

Affix plagini elementni sahifadagi ma’lum bir joyga qotirib (mahkamlab) qo‘yish imkonini beradi. Bu ko‘pincha navigatsiya menyulari yoki ijtimoiy tarmoq belgilari tugmalari bilan ishlatiladi — sahifa yuqoriga va pastga aylantirilganda ular ma’lum bir joyda "yopishib" turishi uchun.

Plagin sahifa aylantirilish (scroll) holatiga qarab bu xatti-harakatni yoqadi va o‘chiradi (CSS position qiymatini static’dan fixed’ga o‘zgartiradi).

Affix plagini uchta klass o‘rtasida almashadi: .affix, .affix-top va .affix-bottom. Har bir klass muayyan holatni ifodalaydi. .affix klassidagi position:fixed dan tashqari, haqiqiy joylashuvlarni boshqarish uchun CSS xususiyatlarini o‘zingiz qo‘shishingiz kerak.

Batafsil ma’lumot uchun Bootstrap Affix darsligimizni o‘qing.

Maslahat: Affix plagini ko‘pincha Scrollspy plagini bilan birga ishlatiladi.


data-* atributlari orqali

Kuzatmoqchi bo‘lgan elementingizga data-spy="affix" ni, aylantirish (scroll) holatini hisoblash uchun esa data-offset-top|bottom="number" atributini qo‘shing.

Misol

<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
O‘zingiz sinab ko‘ring »

JavaScript orqali

Qo‘lda quyidagicha yoqing:

Misol

$('.nav').affix({offset: {top: 150} });
O‘zingiz sinab ko‘ring »


Affix parametrlari

Parametrlarni data atributlari yoki JavaScript orqali uzatish mumkin. Data atributlari uchun parametr nomini data- ga qo‘shing, masalan: data-offset="".

Nomi Tipi Default Tavsif
offset number | object | function 10 Aylantirish (scroll) holatini hisoblashda ekrandan necha piksel siljish (offset) olinishini belgilaydi. Bitta son ishlatilganda siljish ham yuqori, ham pastki yo‘nalishga qo‘shiladi. Agar faqat yuqori yoki pastki qismni boshqarmoqchi bo‘lsangiz, obyektdan foydalaning, masalan: offset: {top:25}

Bir nechta siljish uchun offset: {top:25, bottom:50} dan foydalaning

Maslahat: Siljishni dinamik ravishda berish uchun funksiyadan foydalaning (moslashuvchan dizaynlarda foydali bo‘lishi mumkin)
target selector | node | element window obyekti Affix’ning maqsadli (target) elementini belgilaydi

Affix hodisalari

Quyidagi jadvalda barcha mavjud affix hodisalari keltirilgan.

Hodisa Tavsif Sinab ko‘ring
affix.bs.affix Elementga qotirilgan joylashuv (fixed positioning) qo‘shilishidan oldin sodir bo‘ladi (masalan, .affix-top klassi .affix klassi bilan almashtirilish arafasida bo‘lganda) Sinab ko‘ring
affixed.bs.affix Elementga qotirilgan joylashuv (fixed positioning) qo‘shilgandan keyin sodir bo‘ladi (masalan, .affix-top klassi .affix klassi bilan almashtirilgandan keyin) Sinab ko‘ring
affix-top.bs.affix Yuqori element asl (qotirilmagan) holatiga qaytishidan oldin sodir bo‘ladi (masalan, .affix klassi .affix-top bilan almashtirilish arafasida bo‘lganda) Sinab ko‘ring
affixed-top.bs.affix Yuqori element asl (qotirilmagan) holatiga qaytgandan keyin sodir bo‘ladi (masalan, .affix klassi .affix-top bilan almashtirilgandan keyin) Sinab ko‘ring
affix-bottom.bs.affix Pastki element asl (qotirilmagan) holatiga qaytishidan oldin sodir bo‘ladi (masalan, .affix klassi .affix-bottom bilan almashtirilish arafasida bo‘lganda) Sinab ko‘ring
affixed-bottom.bs.affix Pastki element asl (qotirilmagan) holatiga qaytgandan keyin sodir bo‘ladi (masalan, .affix klassi .affix-bottom bilan almashtirilgandan keyin) Sinab ko‘ring

Ko‘proq misollar

Qotirilgan (affix) navigatsiya paneli

Gorizontal qotirilgan navigatsiya menyusini yarating:

Misol

<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
O‘zingiz sinab ko‘ring »

Navigatsiya panelini avtomatik qotirish uchun jQuery’dan foydalanish

Foydalanuvchi sahifani belgilangan elementdan (<header>) o‘tkazib aylantirgandan keyin navigatsiya panelini qotirish uchun jQuery’ning outerHeight() metodidan foydalaning:

Misol

$(".navbar").affix({offset: {top: $("header").outerHeight(true)} });
O‘zingiz sinab ko‘ring »

Scrollspy va Affix

Affix plaginidan Scrollspy plagini bilan birgalikda foydalanish:

Gorizontal menyu (navbar)

<body data-spy="scroll" data-target=".navbar" data-offset="50"> <nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197"> ... </nav> </body>
O‘zingiz sinab ko‘ring »

Vertikal menyu (yon navigatsiya — sidenav)

<body data-spy="scroll" data-target="#myScrollspy" data-offset="15"> <nav class="col-sm-3" id="myScrollspy">   <ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">   ... </nav> </body>
O‘zingiz sinab ko‘ring »

Qotirilganda animatsiyalanadigan navigatsiya paneli

Turli .affix klasslarini boshqarish uchun CSS’dan foydalaning:

Misol - Sahifa aylantirilganda navigatsiya panelining fon rangi va ichki chekinishini o‘zgartirish

.affix {   top: 0;   width: 100%;   -webkit-transition: all .5s ease-in-out;   transition: all .5s ease-in-out;   background-color: #F44336;   border-color: #F44336; } .affix a {   color: #fff !important;   padding: 15px !important;   -webkit-transition: all .5s ease-in-out;   transition: all .5s ease-in-out; } .affix-top a {   padding: 25px !important; }
O‘zingiz sinab ko‘ring »

Misol - Navigatsiya panelini sirg‘anib chiqadigan qilish

.affix {   top: 0;   width: 100%;   -webkit-transition: all .5s ease-in-out;   transition: all .5s ease-in-out; } .affix-top {   position: static;   top: -35px; }
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!