in English

រមូរ

ធ្វើបច្ចុប្បន្នភាពការរុករក Bootstrap ដោយស្វ័យប្រវត្តិ ឬរាយបញ្ជីសមាសធាតុក្រុមដោយផ្អែកលើទីតាំងរមូរ ដើម្បីបង្ហាញថាបច្ចុប្បន្នតំណមួយណាសកម្មនៅក្នុងច្រកមើល។

របៀបដែលវាដំណើរការ

Scrollspy មានតម្រូវការមួយចំនួនដើម្បីដំណើរការបានត្រឹមត្រូវ៖

  • ប្រសិនបើអ្នកកំពុងបង្កើត JavaScript របស់យើងពីប្រភព វា ទាមទារutil.js .
  • វាត្រូវតែប្រើនៅលើ សមាសភាគ Bootstrap navក្រុមបញ្ជី
  • Scrollspy ទាមទារ position: relative;លើធាតុដែលអ្នកកំពុងចារកម្ម ជាធម្មតា <body>.
  • នៅពេលធ្វើចារកម្មលើធាតុផ្សេងក្រៅពី <body>នេះ ត្រូវប្រាកដថាមាន heightសំណុំ និង overflow-y: scroll;អនុវត្ត។
  • យុថ្កា ( <a>) ត្រូវបានទាមទារ ហើយត្រូវតែចង្អុលទៅធាតុជាមួយនោះ id

នៅពេលអនុវត្តដោយជោគជ័យ ក្រុម nav ឬបញ្ជីរបស់អ្នកនឹងធ្វើបច្ចុប្បន្នភាពទៅតាមនោះ ដោយផ្លាស់ទី .activeថ្នាក់ពីធាតុមួយទៅធាតុបន្ទាប់ដោយផ្អែកលើគោលដៅដែលពាក់ព័ន្ធរបស់ពួកគេ។

ឧទាហរណ៍នៅក្នុង navbar

រមូរតំបន់ខាងក្រោមរបាររុករក ហើយមើលការផ្លាស់ប្តូរថ្នាក់សកម្ម។ ធាតុទម្លាក់ចុះនឹងត្រូវបានបន្លិចផងដែរ។

@ខ្លាញ់

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ អ្នកទទួលបានស្ថាបត្យកម្មល្អបំផុត។ ត្រាលិខិតឆ្លងដែន នាងជាសកល។ ល្អ ស្រស់ កាចសាហាវ យើងទទួលបានវានៅលើសោ។ មិនធ្លាប់មានគម្រោងថាថ្ងៃណាមួយខ្ញុំនឹងបាត់បង់អ្នក។ នាងស៊ីបេះដូងរបស់អ្នក។ ការថើបរបស់អ្នកគឺលោហធាតុ រាល់ចលនាគឺជាវេទមន្ត។ ខ្ញុំ​មាន​ន័យ​ថា​ពួក​គេ ខ្ញុំ​មាន​ន័យ​ថា​ដូច​ជា​នាង​ជា​មួយ​។ ជំរាបសួរបងប្អូនជាទីស្រលាញ់ តោះធ្វើដំណើរកំសាន្ត។ គ្រាន់តែ​ជា​ម្ចាស់​យប់​ដូច​ថ្ងៃ​ទី 4 ខែ​កក្កដា​! ប៉ុន្តែអ្នកចង់ខ្ជះខ្ជាយ។

@mdo

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ ដោយសារតែនាងជា muse និងសិល្បករ។ (នេះជារបៀបដែលយើងធ្វើ) ដូច្នេះអ្នកចង់លេងជាមួយវេទមន្ត។ ដូច្នេះ​សូម​ប្រាកដ​ជា​មុន​នឹង​ឲ្យ​វា​ទាំងអស់​មក​ខ្ញុំ។ ខ្ញុំកំពុងដើរ ​​ខ្ញុំកំពុងដើរលើអាកាស (យប់នេះ)។ រំលងការនិយាយ ឮទាំងអស់ ដល់ពេលដើរ ដើរ។

មួយ។

Placeholder content for the scrollspy example. Takes you miles high, so high, 'cause she’s got that one international smile. There's a stranger in my bed, there's a pounding in my head. Oh, no. In another life I would make you stay. ‘Cause I, I’m capable of anything. Suiting up for my crowning battle. Used to steal your parents' liquor and climb to the roof. Tone, tan fit and ready, turn it up cause its gettin' heavy. Her love is like a drug. I guess that I forgot I had a choice.

two

Placeholder content for the scrollspy example. It's time to bring out the big balloons. I'm walking, I'm walking on air (tonight). Yeah, we maxed our credit cards and got kicked out of the bar. Yo, shout out to all you kids, buying bottle service, with your rent money. I'm ma get your heart racing in my skin-tight jeans. If you get the chance you better keep her. Yo, shout out to all you kids, buying bottle service, with your rent money.

three

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ បើ​ចង់​រាំ បើ​ចង់​បាន​ទាំង​អស់ ដឹង​ថា​ខ្ញុំ​ជា​មនុស្ស​ស្រី​ដែល​គួរ​ហៅ។ ដើរកាត់ព្យុះដែលខ្ញុំនឹង។ ដូច្នេះសូមឱ្យខ្ញុំយកអ្នកនៅក្នុងឈុតខួបកំណើតរបស់អ្នក។ ម្នាក់​ដែល​បាន​ទៅ​ឆ្ងាយ។ កាល​ពី​យប់​ថ្ងៃ​សុក្រ​កន្លង​ទៅ ខ្ញុំ​គិត​ថា​យើង​បំពាន​ច្បាប់ តែង​តែ​និយាយ​ថា​យើង​នឹង​ឈប់។ ព្រោះនាងជា Yoko បន្តិច ហើយនាងជា 'Oh no' បន្តិច។ ខ្ញុំ​ចង់​បាន​ថ្គាម​ធ្លាក់​ចុះ​ភ្នែក​លេច​ឡើង​ក្បាល​វិល​ចូល​ទៅ​ក្នុង​ការ​តក់ស្លុត​រាងកាយ​។ បាទ យើងបានបង្កើនកាតឥណទានរបស់យើង ហើយត្រូវបានបណ្តេញចេញពីរបារ។

និងមាតិកាកន្លែងដាក់មួយចំនួនទៀត សម្រាប់វិធានការដ៏ល្អ។

<nav id="navbar-example2" class="navbar navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <ul class="nav nav-pills">
    <li class="nav-item">
      <a class="nav-link" href="#fat">@fat</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#mdo">@mdo</a>
    </li>
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a>
      <div class="dropdown-menu">
        <a class="dropdown-item" href="#one">one</a>
        <a class="dropdown-item" href="#two">two</a>
        <div role="separator" class="dropdown-divider"></div>
        <a class="dropdown-item" href="#three">three</a>
      </div>
    </li>
  </ul>
</nav>
<div data-spy="scroll" data-target="#navbar-example2" data-offset="0">
  <h4 id="fat">@fat</h4>
  <p>...</p>
  <h4 id="mdo">@mdo</h4>
  <p>...</p>
  <h4 id="one">one</h4>
  <p>...</p>
  <h4 id="two">two</h4>
  <p>...</p>
  <h4 id="three">three</h4>
  <p>...</p>
</div>

ឧទាហរណ៍ជាមួយ nested nav

Scrollspy ក៏ដំណើរការជាមួយ nested .navs ។ ប្រសិនបើសំបុក .navមាន .activeឪពុកម្តាយរបស់វាក៏នឹងជា .active។ រមូរ​ផ្ទៃ​នៅ​ជាប់​របារ​រុករក ហើយ​មើល​ការ​ផ្លាស់ប្ដូរ​ថ្នាក់​សកម្ម។

ធាតុ 1

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ មួយឃ្លានេះទាក់ទងនឹងចំណុចទី 1។ នាំអ្នកឱ្យខ្ពស់ ខ្ពស់ណាស់ ព្រោះនាងទទួលបានស្នាមញញឹមជាអន្តរជាតិនោះ។ មាន​មនុស្ស​ចម្លែក​នៅ​លើ​គ្រែ​របស់​ខ្ញុំ មាន​ការ​វាយ​ក្បាល​ខ្ញុំ។ អូ​ទេ។ ក្នុងជីវិតមួយទៀត ខ្ញុំនឹងឲ្យអ្នកស្នាក់នៅ។ ព្រោះខ្ញុំ ខ្ញុំមានសមត្ថភាពអ្វីទាំងអស់។ ស័ក្តិសមសម្រាប់សមរភូមិគ្រងរាជ្យរបស់ខ្ញុំ។ ធ្លាប់​លួច​ស្រា​ឪពុក​ម្តាយ​ឡើង​លើ​ដំបូលផ្ទះ​។ សម្លេង, tan សម និងត្រៀមខ្លួនជាស្រេច, បើកវាឡើងបណ្តាលឱ្យវា 'ធ្ងន់។ ស្នេហារបស់នាងគឺដូចជាថ្នាំ។ ខ្ញុំគិតថាខ្ញុំភ្លេចថាខ្ញុំមានជម្រើស។

ធាតុ 1-1

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ នេះទាក់ទងនឹងធាតុ 1-1 ។ អ្នកទទួលបានស្ថាបត្យកម្មល្អបំផុត។ ត្រាលិខិតឆ្លងដែន នាងជាសកល។ ល្អ ស្រស់ កាចសាហាវ យើងទទួលបានវានៅលើសោ។ មិនធ្លាប់មានគម្រោងថាថ្ងៃណាមួយខ្ញុំនឹងបាត់បង់អ្នក។ នាងស៊ីបេះដូងរបស់អ្នក។ ការថើបរបស់អ្នកគឺលោហធាតុ រាល់ចលនាគឺជាវេទមន្ត។ ខ្ញុំ​មាន​ន័យ​ថា​ពួក​គេ ខ្ញុំ​មាន​ន័យ​ថា​ដូច​ជា​នាង​ជា​មួយ​។ ជំរាបសួរបងប្អូនជាទីស្រលាញ់ តោះធ្វើដំណើរកំសាន្ត។ គ្រាន់តែ​ជា​ម្ចាស់​យប់​ដូច​ថ្ងៃ​ទី 4 ខែ​កក្កដា​! ប៉ុន្តែអ្នកចង់ខ្ជះខ្ជាយ។

ធាតុ 1-2

Placeholder content for the scrollspy example. This one relates to the item 1-2. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

Item 2

Placeholder content for the scrollspy example. This one relates to item 2. Don't need apologies. There is no fear now, let go and just be free, I will love you unconditionally. Last Friday night. Don't be a shy kinda guy I'll bet it's beautiful. Summer after high school when we first met. 'Cause she's the muse and the artist. What? Wait. No, no, no, no. Thought that I was the exception.

Item 3

Placeholder content for the scrollspy example. This one relates to item 3. Word on the street, you got somethin' to show me, me. All this money can't buy me a time machine. Make it like your birthday everyday. So we hit the boulevard. You make me feel like I'm livin' a teenage dream, the way you turn me on Skip the talk, heard it all, time to walk the walk. Word on the street, you got somethin' to show me, me. It's no big deal, it's no big deal, it's no big deal.

Item 3-1

Placeholder content for the scrollspy example. This one relates to item 3-1. Baby do you dare to do this? This is no big deal. Yeah, you're lucky if you're on her plane. Just own the night like the 4th of July! Standing on the frontline when the bombs start to fall. So just be sure before you give it all to me.

Item 3-2

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ scrollspy ។ នេះទាក់ទងនឹងធាតុ 3-2 ។ អ្នកគឺដើម មិនអាចជំនួសបានទេ។ ពួកគេលេងពេញមួយយប់ ចម្រៀងរបស់អ្នក។ ក្មេងស្រី កាលីហ្វ័រញ៉ា យើងមិនអាចប្រកែកបាន។ ដូចជាបក្សីដែលគ្មានទ្រុង។ ពេលនេះលែងខ្លាចហើយ លែងមានសេរីភាព ខ្ញុំនឹងស្រលាញ់អ្នកដោយគ្មានលក្ខខណ្ឌ។ ខ្ញុំអាចមើលឃើញការសរសេរនៅលើជញ្ជាំង។ អ្នកអាចធ្វើដំណើរជុំវិញពិភពលោក ប៉ុន្តែគ្មានអ្វីមកជិតឆ្នេរមាសទេ។

<nav id="navbar-example3" class="navbar navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <nav class="nav nav-pills flex-column">
    <a class="nav-link" href="#item-1">Item 1</a>
    <nav class="nav nav-pills flex-column">
      <a class="nav-link ml-3 my-1" href="#item-1-1">Item 1-1</a>
      <a class="nav-link ml-3 my-1" href="#item-1-2">Item 1-2</a>
    </nav>
    <a class="nav-link" href="#item-2">Item 2</a>
    <a class="nav-link" href="#item-3">Item 3</a>
    <nav class="nav nav-pills flex-column">
      <a class="nav-link ml-3 my-1" href="#item-3-1">Item 3-1</a>
      <a class="nav-link ml-3 my-1" href="#item-3-2">Item 3-2</a>
    </nav>
  </nav>
</nav>

<div data-spy="scroll" data-target="#navbar-example3" data-offset="0">
  <h4 id="item-1">Item 1</h4>
  <p>...</p>
  <h5 id="item-1-1">Item 1-1</h5>
  <p>...</p>
  <h5 id="item-1-2">Item 1-2</h5>
  <p>...</p>
  <h4 id="item-2">Item 2</h4>
  <p>...</p>
  <h4 id="item-3">Item 3</h4>
  <p>...</p>
  <h5 id="item-3-1">Item 3-1</h5>
  <p>...</p>
  <h5 id="item-3-2">Item 3-2</h5>
  <p>...</p>
</div>

ឧទាហរណ៍ជាមួយបញ្ជីក្រុម

Scrollspy ក៏ធ្វើការជាមួយ .list-groups ។ រមូរ​តំបន់​នៅ​ជាប់​ក្រុម​បញ្ជី ហើយ​មើល​ការ​ផ្លាស់ប្ដូរ​ថ្នាក់​សកម្ម។

ធាតុ 1

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ក្រុមបញ្ជីរមូរ។ មួយ​នេះ​ទាក់​ទង​នឹង​ចំណុច​ទី ១។ មិន​ត្រូវ​ការ​ការ​សុំទោស​ទេ។ ពេលនេះលែងខ្លាចហើយ លែងមានសេរីភាព ខ្ញុំនឹងស្រលាញ់អ្នកដោយគ្មានលក្ខខណ្ឌ។ កាលពី​យប់​ថ្ងៃសុក្រ។ កុំធ្វើជាមនុស្សខ្មាស់អៀនអី ខ្ញុំហ៊ានភ្នាល់ថាវាស្អាត។ រដូវក្តៅបន្ទាប់ពីវិទ្យាល័យនៅពេលយើងជួបគ្នាដំបូង។ ដោយសារតែនាងជា muse និងសិល្បករ។ អ្វី? រង់ចាំ។ គិតថាខ្ញុំជាករណីលើកលែង។

ធាតុទី 2

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ក្រុមបញ្ជីរមូរ។ មួយ​នេះ​ទាក់​ទង​នឹង​ចំណុច​ទី​២។ យាយ​នាង​រាំ​តាម​ចង្វាក់​ខ្លួន​ឯង។ អូ​ទេ។ អ្នកប្រហែលជាអស្ចារ្យបំផុត។ ទារក អ្នកគឺជាកាំជ្រួច។ ប្រហែលជាមូលហេតុដែលទ្វារទាំងអស់ត្រូវបានបិទ។ បើកបេះដូងរបស់អ្នក ហើយអនុញ្ញាតឱ្យវាចាប់ផ្តើម។ ឡូយណាស់ បាទ នាងជាបុរាណ។

ធាតុទី 3

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ក្រុមបញ្ជីរមូរ។ មួយ​នេះ​ទាក់​ទង​នឹង​ចំណុច​ទី​៣។ យើង​ទៅ​ខ្ពស់​ជាង​នេះ។ មិន​ដែល​គ្មាន​អ្នក​ផ្សេង យើង​បាន​ធ្វើ​កតិកាសញ្ញា​មួយ​។ ខ្ញុំកំពុងដើរនៅលើអាកាស។ នរណាម្នាក់បាននិយាយថាអ្នកបានលុបស្នាមសាក់របស់អ្នក។ ឥឡូវនេះខ្ញុំកំពុងអណ្តែតដូចមេអំបៅ។ សម្លេង, tan សម និងត្រៀមខ្លួនជាស្រេច, បើកវាឡើងបណ្តាលឱ្យវា 'ធ្ងន់។ ព្រោះថាអ្នកជារបស់ខ្ញុំ នៅពេលដែលអ្នកជារបស់ខ្ញុំ។ អ្នកគ្រាន់តែត្រូវបញ្ឆេះភ្លើងហើយទុកឱ្យវាភ្លឺ! ដូច្នេះយើងបុកមហាវិថី។ តើអ្នកធ្លាប់មានអារម្មណ៍ថាមានអារម្មណ៍ថាក្រដាសស្តើងណាស់។ ខ្ញុំឃើញវាទាំងអស់ ខ្ញុំឃើញវាឥឡូវនេះ។

ធាតុទី 4

មាតិកាកន្លែងដាក់សម្រាប់ឧទាហរណ៍ក្រុមបញ្ជីរមូរ។ រឿងនេះទាក់ទងនឹងចំណុចទី 4 ពេលនេះលែងខ្លាចហើយ លែងមានសេរីភាព ខ្ញុំនឹងស្រលាញ់អ្នកដោយគ្មានលក្ខខណ្ឌ។ ស្បែក​ដែល​ត្រូវ​កម្ដៅ​ថ្ងៃ​យើង​នឹង​រលាយ​នំ​ប៉ី​របស់​អ្នក។ ស្នេហានេះនឹងធ្វើឱ្យអ្នកធូរស្រាល។

<div id="list-example" class="list-group">
  <a class="list-group-item list-group-item-action" href="#list-item-1">Item 1</a>
  <a class="list-group-item list-group-item-action" href="#list-item-2">Item 2</a>
  <a class="list-group-item list-group-item-action" href="#list-item-3">Item 3</a>
  <a class="list-group-item list-group-item-action" href="#list-item-4">Item 4</a>
</div>
<div data-spy="scroll" data-target="#list-example" data-offset="0" class="scrollspy-example">
  <h4 id="list-item-1">Item 1</h4>
  <p>...</p>
  <h4 id="list-item-2">Item 2</h4>
  <p>...</p>
  <h4 id="list-item-3">Item 3</h4>
  <p>...</p>
  <h4 id="list-item-4">Item 4</h4>
  <p>...</p>
</div>

ការប្រើប្រាស់

តាមរយៈគុណលក្ខណៈទិន្នន័យ

ដើម្បីងាយស្រួលបន្ថែមឥរិយាបថរមូរទៅការរុករករបារកំពូលរបស់អ្នក បន្ថែម data-spy="scroll"ទៅធាតុដែលអ្នកចង់ឈ្លបយកការណ៍ (ភាគច្រើនជាធម្មតាវាជា <body>)។ បន្ទាប់មកបន្ថែម data-targetគុណលក្ខណៈជាមួយនឹងលេខសម្គាល់ ឬថ្នាក់នៃធាតុមេនៃ .navសមាសធាតុ Bootstrap ណាមួយ។

body {
  position: relative;
}
<body data-spy="scroll" data-target="#navbar-example">
  ...
  <div id="navbar-example">
    <ul class="nav nav-tabs" role="tablist">
      ...
    </ul>
  </div>
  ...
</body>

តាមរយៈ JavaScript

បន្ទាប់ពីបន្ថែម position: relative;នៅក្នុង CSS របស់អ្នក សូមហៅទៅ scrollspy តាមរយៈ JavaScript៖

$('body').scrollspy({ target: '#navbar-example' })

តម្រូវ​ឱ្យ​មាន​គោលដៅ ID ដែលអាចដោះស្រាយបាន។

តំណភ្ជាប់ Navbar ត្រូវតែមានគោលដៅលេខសម្គាល់ដែលអាចដោះស្រាយបាន។ ឧទាហរណ៍ <a href="#home">home</a>ត្រូវតែឆ្លើយតបទៅនឹងអ្វីមួយនៅក្នុង DOM ដូចជា <div id="home"></div>.

ធាតុដែល មិនមែនជា :visibleគោលដៅត្រូវបានអើពើ

ធាតុគោលដៅដែលមិន :visibleយោងទៅតាម jQuery នឹងត្រូវបានមិនអើពើ ហើយធាតុ nav ដែលត្រូវគ្នារបស់ពួកគេនឹងមិនត្រូវបានបន្លិចឡើយ។

វិធីសាស្រ្ត

.scrollspy('refresh')

នៅពេលប្រើ scrollspy ដោយភ្ជាប់ជាមួយការបន្ថែម ឬការដកធាតុចេញពី DOM អ្នកនឹងត្រូវហៅវិធីសាស្ត្រធ្វើឱ្យស្រស់ដូចនេះ៖

$('[data-spy="scroll"]').each(function () {
  var $spy = $(this).scrollspy('refresh')
})

.scrollspy('dispose')

បំផ្លាញ scrollspy របស់ធាតុមួយ។

ជម្រើស

ជម្រើសអាចត្រូវបានឆ្លងកាត់តាមរយៈគុណលក្ខណៈទិន្នន័យ ឬ JavaScript ។ សម្រាប់គុណលក្ខណៈទិន្នន័យ សូមបន្ថែមឈ្មោះជម្រើសទៅ data-ដូចក្នុង data-offset="".

ឈ្មោះ ប្រភេទ លំនាំដើម ការពិពណ៌នា
អុហ្វសិត ចំនួន ១០ ភីកសែលដែលត្រូវទូទាត់ពីកំពូលនៅពេលគណនាទីតាំងរមូរ។
វិធីសាស្រ្ត ខ្សែអក្សរ ស្វ័យប្រវត្តិ ស្វែងរកផ្នែកណាដែលធាតុចារកម្មស្ថិតនៅក្នុង។ autoនឹងជ្រើសរើសវិធីសាស្ត្រដ៏ល្អបំផុតដើម្បីទទួលបានកូអរដោនេរមូរ។ offsetនឹងប្រើវិធីសាស្ត្រអុហ្វសិត jQuery ដើម្បីទទួលបានកូអរដោនេរមូរ។ positionនឹងប្រើវិធីសាស្ត្រទីតាំង jQuery ដើម្បីទទួលបានកូអរដោនេរមូរ។
គោលដៅ ខ្សែអក្សរ | វត្ថុ jQuery | ធាតុ DOM បញ្ជាក់ធាតុដើម្បីអនុវត្តកម្មវិធីជំនួយ Scrollspy ។

ព្រឹត្តិការណ៍

ប្រភេទព្រឹត្តិការណ៍ ការពិពណ៌នា
activate.bs.scrollspy ព្រឹត្តិការណ៍នេះដំណើរការលើធាតុរមូរនៅពេលណាដែលធាតុថ្មីត្រូវបានធ្វើឱ្យសកម្មដោយ scrollspy ។
$('[data-spy="scroll"]').on('activate.bs.scrollspy', function () {
  // do something...
})