ホームページ >ウェブフロントエンド >jsチュートリアル >ブートストラップはスクロール監視を毎日学習する必要がある_JavaScript スキル

ブートストラップはスクロール監視を毎日学習する必要がある_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 15:10:261306ブラウズ

この記事では、誰でも学べる Bootstrap のスクロール監視について紹介します。具体的な内容は次のとおりです。

1. 現在、Scrollspy では、アクティブなリンクを適切に強調表示するために Bootstrap ナビゲーション コンポーネントを使用する必要があります。

---- スクロール監視を使用する場合、ナビゲーション バーは class="nav" の nav コンポーネントを使用する必要があります:

以下はソース コードのセクションです。赤でマークされた部分はこれを証明できます。

ScrollSpy を使用する場合は、73a72cdc17fc2b29bb35d64b4687fa7c タグを使用する必要があり、25edfb22a4f469ecb59f1190150159c6 の下に 3499910bf9dac5ae3c52d5ede7383485 タグが必要です。

注: さらに、73a72cdc17fc2b29bb35d64b4687fa7c タグを別のコンテナ (div など) に配置し、そのコンテナに ID を追加する必要があります。親コンテナのプロパティ (これについてはセクション 4 で説明します)

function ScrollSpy(element, options) {
  this.$body     = $(document.body)
  this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
  this.options    = $.extend({}, ScrollSpy.DEFAULTS, options)
  this.selector    = (this.options.target || '') + ' .nav li > a'
  this.offsets    = []
  this.targets    = []
  this.activeTarget  = null
  this.scrollHeight  = 0

  this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
  this.refresh()
  this.process()
 }

2. Navbar リンクには、解決可能な ID ターゲットが必要です。たとえば、bdbe26872a334f3b7c83b8ae7c50ac47home5db79b134e9f6b82c0b36e0489ee08ed は、5f3b34213db5dea3192e3beea655c52f のようなものに対応する必要があります。 ;16b28748ea4df4d9c2150843fecfba68.

--- 簡単に言うと、25edfb22a4f469ecb59f1190150159c6 の下の 3499910bf9dac5ae3c52d5ede7383485 タグには href="#id" 属性が必要であり、スクロールするコンテンツには対応する 8cb07dc87fb7093ec19277969ea4f0e35db79b134e9f6b82c0b36e0489ee08ed このようなタグ。コンテンツが 5ffad543fdd9d71340ebb3c2c670dbf3 タグまでスクロールすると、対応する 25edfb22a4f469ecb59f1190150159c62dac5b3c1a71acb02bf03dd588b09a33 が自動的に表示されます。選択されました。

-- 実際、Web 開発を行った友人はこれを知っています。以前のバージョンの HTML では、アンカー タグは通常 bc8f08fb0993388c993dc7bf88c0ef43 を使用していましたが、HTML5 ではアンカー タグの代わりに使用されなくなりました。 name 属性、id 属性を使用

 ScrollSpy.prototype.activate = function (target) {
  this.activeTarget = target

  this.clear()

  var selector = this.selector +
   '[data-target="' + target + '"],' +
   this.selector + '[href="' + target + '"]'

  var active = $(selector)
   .parents('li')
   .addClass('active')

  if (active.parent('.dropdown-menu').length) {
   active = active
    .closest('li.dropdown')
    .addClass('active')
  }

  active.trigger('activate.bs.scrollspy')
 }

3. 実装方法に関係なく、scrollspy では、2cfe8e734c24f24dd281d281f3422a34)。次に、data-target を追加します。属性には、Bootstrap .navcomponent の親要素の ID またはクラスを指定します。

--- スクロールコンテンツのラベルに data-spy="scroll" 属性と data-target 属性を追加する必要があります

data-spy 属性は監視する要素を指定し、data-target 属性はスクロール中に制御する必要があるナビゲーションの強調表示を指定します

下の初期化ソースコードをもう一度見てください。赤色でマークされた位置、this.options.target の値は、スクロールするコンテンツ要素の data-target の値と同じです。コンポーネントを作成するときは、.nav を別のコンテナ (div など) に配置する必要があり、コンテナには id 属性が必要です (データターゲットと同じ値をここで設定する必要があります)。 )。

function ScrollSpy(element, options) {
  this.$body     = $(document.body)
  this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
  this.options    = $.extend({}, ScrollSpy.DEFAULTS, options)
  this.selector    = (this.options.target || '') + ' .nav li > a'
  this.offsets    = []
  this.targets    = []
  this.activeTarget  = null
  this.scrollHeight  = 0

  this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
  this.refresh()
  this.process()
 }
5. CSS にposition:relative; を追加した後、JavaScript 経由でスクロールスパイを呼び出します。

$('yourTag').scrollspy({ target: 'nav-parent-div-id' })
-- yourTag はスクロール コンテンツを運ぶ要素の ID、nav-parent-div-id は .nav 要素の親要素の ID (つまり、data-target の値) )
めちゃくちゃなことをたくさん書きましたが、ここではいくつかの簡単な手順を要約します:

1.タグを追加f1518adc5c8cfeb5a647655054a938eba

に href="#tag" 属性を追加します

3.

を追加します;

4. スタイル #content{height:500px;overflow-y:scroll;opsition:relative;}

を追加します。

5. スクリプト $('#content').scrollspy({target:'scrollSpyID'});

を追加します

最後に、小さな栗:

<style type="text/css">
    #body {
      position: relative;
      height: 500px;
      overflow-y: scroll;
    }
  </style>
<div id="sc">
    <ul class="nav nav-pills">
      <li class="active">
        <a href="#A">第一段</a>
      </li>
      <li>
        <a href="#B">第二段</a>
      </li>
      <li>
        <a href="#C">第三段</a>
      </li>
    </ul>

  </div>

<div id="body" class="container-fluid" data-spy="scroll" data-target="#sc">

  <a id="A">第一段</a><br />

    <!-- 这里要有很多内容,至少要保证可以滚动 -->

  <a id="A">第二段</a><br />

    <!-- 这里要有很多内容,至少要保证可以滚动 -->

  <a id="A">第三段</a><br />

    <!-- 这里要有很多内容,至少要保证可以滚动 -->

</div>

$(function () {
  $('#body').scrollspy({ target: '#sc' });
});
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。