Bootstrap-affix-plugin

提供:Dev Guides
移動先:案内検索

ブートストラップ-接辞プラグイン

affixプラグインを使用すると、<div>をページ上の場所に添付できます。 このプラグインを使用して、ピン留めのオンとオフを切り替えることもできます。 これの一般的な例は、ソーシャルアイコンです。 それらは特定の位置から開始しますが、ページが特定のマークに達すると、<div>は所定の位置にロックされ、ページの残りの部分とのスクロールが停止します。

'_このプラグイン機能を個別に含める場合は、 affix.js が必要です。 または、リンク:/bootstrap/bootstrap_plugins_overview [Bootstrap Plugins Overview]で説明されているように、_bootstrap.js_または縮小された_bootstrap.min.js_を含めることができます。_

使用法

affixプラグインは、データ属性を使用するか、以下で説明するように独自のJavaScriptを使用して手動で使用できます。

  • データ属性を介して-任意の要素に接辞動作を簡単に追加するには、スパイしたい要素に data-spy = "affix" を追加するだけです。 オフセットを使用して、要素の固定をいつ切り替えるかを定義します。

次の例は、データ属性による使用方法を示しています-

<div class = "container">
   <div class = "jumbotron">
      <h1>Bootstrap Affix Plugin example</h1>
   </div>

   <div id = "myNav"  data-spy = "affix" data-offset-top = "60" data-offset-bottom = "200">

      <div class = "col-md-3">
         <ul class = "nav nav-tabs nav-stacked affix" data-spy = "affix" data-offset-top = "190">
            <li class = "active"><a href = "#one">Tutorial One</a></li>
            <li><a href = "#two">Tutorial Two</a></li>
            <li><a href = "#three">Tutorial Three</a></li>
         </ul>
      </div>

      <div class = "col-md-9">
         <h2 id = "one">Tutorial One</h2>

         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
            Nam eu sem tempor, varius quam at, luctus dui. Mauris magna metus,
            dapibus nec turpis vel, semper malesuada ante. Vestibulum
            id metus ac nisl bibendum scelerisque non non purus. Suspendisse
            varius nibh non aliquet sagittis. In tincidunt orci sit amet
            elementum vestibulum. Vivamus fermentum in arcu in aliquam. Quisque
            aliquam porta odio in fringilla. Vivamus nisl leo, blandit at bibendum
            eu, tristique eget risus. Integer aliquet quam ut elit suscipit,
            id interdum neque porttitor. Integer faucibus ligula.</p>

         <p>Vestibulum quis quam ut magna consequat faucibus.
            Pellentesque eget nisi a mi suscipit tincidunt. Ut tempus dictum
            risus. Pellentesque viverra sagittis quam at mattis. Suspendisse
            potenti. Aliquam sit amet gravida nibh, facilisis gravida odio.
            Phasellus auctor velit at lacus blandit, commodo iaculis justo
            viverra. Etiam vitae est arcu. Mauris vel congue dolor. Aliquam eget
            mi mi. Fusce quam tortor, commodo ac dui quis, bibendum viverra erat.
            Maecenas mattis lectus enim, quis tincidunt dui molestie euismod.
            Curabitur et diam tristique, accumsan nunc eu, hendrerit tellus.</p>

         <hr>

         <h2 id = "two">Tutorial Two</h2>

         <p>Nullam hendrerit justo non leo aliquet imperdiet. Etiam in
            sagittis lectus. Suspendisse ultrices placerat accumsan. Mauris quis
            dapibus orci. In dapibus velit blandit pharetra tincidunt.
            Quisque non sapien nec lacus condimentum facilisis ut iaculis enim.
            Sed viverra interdum bibendum. Donec ac sollicitudin dolor. Sed
            fringilla vitae lacus at rutrum. Phasellus congue vestibulum ligula sed consequat.</p>

         <p>Vestibulum consectetur scelerisque lacus, ac fermentum lorem
            convallis sed. Nam odio tortor, dictum quis malesuada at,
            pellentesque vitae orci. Vivamus elementum, felis eu auctor lobortis,
            diam velit egestas lacus, quis fermentum metus ante quis urna. Sed at
            facilisis libero. Cum sociis natoque penatibus et magnis dis
            parturient montes, nascetur ridiculus mus. Vestibulum bibendum
            blandit dolor. Nunc orci dolor, molestie nec nibh in, hendrerit
            tincidunt ante. Vivamus sem augue, hendrerit non sapien in,
            mollis ornare augue.</p>

         <hr>

         <h2 id = "three">Tutorial Three</h2>

         <p>Integer pulvinar leo id risus pellentesque vestibulum.
            Sed diam libero, sodales eget sapien vel, porttitor bibendum enim.
            Donec sed nibh vitae lorem porttitor blandit in nec ante.
            Pellentesque vitae metus ipsum. Phasellus sed nunc ac sem malesuada
            condimentum. Etiam in aliquam lectus. Nam vel sapien diam. Donec
            pharetra id arcu eget blandit. Proin imperdiet mattis augue in
            porttitor. Quisque tempus enim id lobortis feugiat. Suspendisse
            tincidunt risus quis dolor fringilla blandit. Ut sed sapien at purus
            lacinia porttitor. Nullam iaculis, felis a pretium ornare, dolor nisl
            semper tortor, vel sagittis lacus est consequat eros. Sed id pretium
            nisl. Curabitur dolor nisl, laoreet vitae aliquam id, tincidunt sit
            amet mauris. </p>

         <p>Phasellus vitae suscipit justo. Mauris pharetra feugiat ante
            id lacinia. Etiam faucibus mauris id tempor egestas. Duis luctus
            turpis at accumsan tincidunt. Phasellus risus risus,
            volutpat vel tellus ac, tincidunt fringilla massa. Etiam hendrerit
            dolor eget ante rutrum adipiscing. Cras interdum ipsum mattis,
            tempus mauris vel, semper ipsum. Duis sed dolor ut enim lobortis
            pellentesque ultricies ac ligula. Pellentesque convallis  elit nisi, id
            vulputate ipsum ullamcorper ut. Cras ac pulvinar purus, ac viverra est. Suspendisse
            potenti. Integer pellentesque neque et elementum tempus.
            Curabitur bibendum in ligula ut rhoncus.</p>

         <p>Quisque pharetra velit id velit iaculis pretium. Nullam a justo
            sed ligula porta semper eu quis enim. Pellentesque pellentesque,
            metus at facilisis hendrerit, lectus velit facilisis leo, quis
            volutpat turpis arcu quis enim. Nulla viverra lorem elementum
            interdum ultricies. Suspendisse accumsan quam nec ante mollis tempus.
            Morbi vel accumsan diam, eget convallis tellus. Suspendisse potenti.</p>
      </div>

   </div>
</div>
  • Via JavaScript -以下に示すように、JavaScriptを使用して要素を手動で付加できます。
$('#myAffix').affix({
   offset: {
      top: 100, bottom: function () {
         return (this.bottom = $('.bs-footer').outerHeight(true))
      }
   }
})

次の例は、データ属性による使用方法を示しています-

<div class = "container">
   <div class = "jumbotron">
      <h1>Bootstrap Affix Plugin example</h1>
   </div>

   <div>

      <div class = "col-md-3">
         <ul class = "nav nav-tabs nav-stacked affix" id = "myNav">
            <li class = "active"><a href = "#one">Tutorial One</a></li>
            <li><a href = "#two">Tutorial Two</a></li>
            <li><a href = "#three">Tutorial Three</a></li>
         </ul>
      </div>

      <div class = "col-md-9">
         <h2 id = "one">Tutorial One</h2>

         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
            Nam eu sem tempor, varius quam at, luctus dui. Mauris magna metus,
            dapibus nec turpis vel, semper malesuada ante. Vestibulum id metus
            ac nisl bibendum scelerisque non non purus. Suspendisse varius nibh
            non aliquet sagittis. In tincidunt orci sit amet elementum vestibulum.
            Vivamus fermentum in arcu in aliquam. Quisque aliquam porta odio
            in fringilla. Vivamus nisl leo, blandit at bibendum eu, tristique
            eget risus. Integer aliquet quam ut elit suscipit, id interdum
            neque porttitor. Integer faucibus ligula.</p>

         <p>Vestibulum quis quam ut magna consequat faucibus.
            Pellentesque eget nisi a mi suscipit tincidunt. Ut tempus dictum
            risus. Pellentesque viverra sagittis quam at mattis. Suspendisse
            potenti. Aliquam sit amet gravida nibh, facilisis gravida odio.
            Phasellus auctor velit at lacus blandit, commodo iaculis justo
            viverra. Etiam vitae est arcu. Mauris vel congue dolor.
            Aliquam eget mi mi. Fusce quam tortor, commodo ac dui quis,
            bibendum viverra erat. Maecenas mattis lectus enim, quis tincidunt
            dui molestie euismod. Curabitur et diam tristique, accumsan nunc eu,
            hendrerit tellus.</p>

         <hr>

         <h2 id = "two">Tutorial Two</h2>

         <p>Nullam hendrerit justo non leo aliquet imperdiet. Etiam in
            sagittis lectus. Suspendisse ultrices placerat accumsan. Mauris
            quis dapibus orci. In dapibus velit blandit pharetra tincidunt.
            Quisque non sapien nec lacus condimentum facilisis ut iaculis enim.
            Sed viverra interdum bibendum. Donec ac sollicitudin dolor.
            Sed fringilla vitae lacus at rutrum. Phasellus congue vestibulum
            ligula sed consequat.</p>

         <p>Vestibulum consectetur scelerisque lacus, ac fermentum lorem
            convallis sed. Nam odio tortor, dictum quis malesuada at,
            pellentesque vitae orci. Vivamus elementum, felis eu auctor lobortis,
            diam velit egestas lacus, quis fermentum metus ante quis urna.
            Sed at facilisis libero. Cum sociis natoque penatibus et magnis dis
            parturient montes, nascetur ridiculus mus. Vestibulum bibendum
            blandit dolor. Nunc orci dolor, molestie nec nibh in, hendrerit
            tincidunt ante. Vivamus sem augue, hendrerit non sapien in,
            mollis ornare augue.</p>

         <hr>

         <h2 id = "three">Tutorial Three</h2>

         <p>Integer pulvinar leo id risus pellentesque vestibulum.
            Sed diam libero, sodales eget sapien vel, porttitor bibendum enim.
            Donec sed nibh vitae lorem porttitor blandit in nec ante.
            Pellentesque vitae metus ipsum. Phasellus sed nunc ac sem malesuada
            condimentum. Etiam in aliquam lectus. Nam vel sapien diam.
            Donec pharetra id arcu eget blandit. Proin imperdiet mattis augue in
            porttitor. Quisque tempus enim id lobortis feugiat. Suspendisse
            tincidunt risus quis dolor fringilla blandit. Ut sed sapien at
            purus lacinia porttitor. Nullam iaculis, felis a pretium ornare,
            dolor nisl semper tortor, vel sagittis lacus est consequat eros.
            Sed id pretium nisl. Curabitur dolor nisl, laoreet vitae aliquam id,
            tincidunt sit amet mauris.</p>

         <p>Phasellus vitae suscipit justo. Mauris pharetra feugiat ante id
            lacinia. Etiam faucibus mauris id tempor egestas. Duis luctus turpis
            at accumsan tincidunt. Phasellus risus risus, volutpat vel tellus ac,
            tincidunt fringilla massa. Etiam hendrerit dolor eget ante
            rutrum adipiscing. Cras interdum ipsum mattis, tempus mauris vel,
            semper ipsum. Duis sed dolor ut enim lobortis pellentesque ultricies
            ac ligula. Pellentesque convallis  elit nisi, id vulputate ipsum
            ullamcorper ut. Cras ac pulvinar purus, ac viverra est. Suspendisse
            potenti. Integer pellentesque neque et elementum tempus.
            Curabitur bibendum in ligula ut rhoncus.</p>

         <p>Quisque pharetra velit id velit iaculis pretium. Nullam a justo
            sed ligula porta semper eu quis enim. Pellentesque pellentesque,
            metus at facilisis hendrerit, lectus velit facilisis leo, quis
            volutpat turpis arcu quis enim. Nulla viverra lorem elementum
            interdum ultricies. Suspendisse accumsan quam nec ante mollis tempus.
            Morbi vel accumsan diam, eget convallis tellus. Suspendisse potenti.</p>
      </div>

   </div>
</div>

<script type = "text/javascript">
   $(function () {
      $('#myNav').affix({
         offset: {
            top: 60
         }
      });
   });
</script>

CSSによる位置決め

上記の両方の状況で、コンテンツの配置にCSSを提供する必要があります。 affixプラグインは、それぞれ特定の状態を表す3つのクラス(.affix、.affix-top、および.affix-bottom)を切り替えます。 上記の使用オプションのいずれかにCSSを設定するには、以下の手順に従ってください。

  • 開始するには、プラグインは .affix-top を追加して、要素が最上部にあることを示します。 この時点では、CSSの配置は不要です。
  • 貼り付けたい要素をスクロールすると、実際の貼り付けがトリガーされます。 これは、。affix *が *.affix-top を置き換え、 position:fixed; (BootstrapのコードCSSによって提供される)を設定する場所です。
  • 下部オフセットが定義されている場合、スクロールして .affix.affix-bottom に置き換える必要があります。 オフセットはオプションなので、1を設定するには適切なCSSを設定する必要があります。 この場合、必要に応じて position:absolute; を追加します。

オプション

次の表にリストされているように、データ属性またはJavaScriptを介して渡すことができる特定のオプションがあります-

Option Name Type/Default Value Data attribute name Description
offset number function object Default: 10