精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

熱門文章

最新文章

Bootstrap框架動態生成Web頁面文章內目錄的方法

發布時間:2021-06-22 15:26:45

引言
在寫博客的時候,為了條理性起見,經常會使用許多小標題,當文章長時,需要來回在不同的標題之間穿梭,如果手動添加目錄,添加錨點,實在是麻煩,為此,可以動態生成一塊目錄區域,并使用Bootstrap提供的Affix插件將目錄區域固定在頁面上。Bootstrap文檔便使用了它

準備工作-引入bootstrap.min.js
將bootstrap.min.js放入body之前的script標簽中,uikit.min.js暫時不引入。
引入相關插件之后,我們的思路是首先根據文章自動生成錨點以及菜單內容,隨后為其添加Affix產生固定效果,再使用uikit的scrollSpy插件(bootstrap中也有scrollspy,使用方法幾乎一致)。

引-學習Affix的使用
Affix插件尅幫助我們固定導航部分的位置,并且根據用戶的滾動情況來為固定的元素增加垂直偏移量,使得nav在三個類之間進行切換:
1.affix-top:表示在頂端
2.affix:表示在頁面滾動,增加fixed屬性,同時使用自定義的offset偏移量
3.affix-bottom:表示到達最底端

啟用Affix只需要以下代碼:

$('#nav').affix({
  offset: {
          top:$('header').offset().top,
      bottom: ($('footer').outerHeight(true) + 
        $('.application').outerHeight(true)) + 40
    }
});

一、組織HTML代碼部分

<ul id="mysidebar" class="nav affix" >
</ul>

一定要注意為ul添加nav和affix類。

二、生成封裝代碼
將本代碼段引入到你自己的script腳本中

;$.fn.extend({
   "createAffix": function(selector) {
     $list = $("" + selector),
       length = $list.length,
       affixValue = "";
     for (var i = 0; i < length; i++) {
       //給每一個標題增加name屬性
       $list.eq(i).attr("id", ("node" + i));
       var text = $list.eq(i).text();
       if (i == 0) {
         affixValue += "<li><a href=#node" + i + " class='active' >" + text + "</a></li>";
       } else {
         affixValue += "<li><a href=#node" + i + ">" + text + "</a></li>";
       }
     }
     this.append(affixValue);
     this.affix({
       offset: {
         top: this.offset().top//在固定之后距離頂部的偏移量
       }
     });
     return this;
   }
 
});

上述代碼的原理是為createAffix函數傳入需要被認為是標題單元的標簽或者類,在遍歷過程中為其增加錨點鏈接。

三、使用方法
書寫HTML部分

<ul id="mysidebar" class="nav affix" >
<li><a href="#node1"></a></li>
<li><a href="#node2"></a></li>
<li><a href="#node3"></a></li>
</ul>
 
<h3 id="node1">標題1</h3>
<h3 id="node2">標題2</h3>
<h3 id="node3">標題3</h3>

書寫Javascript部分

$(function(){
$(' #mysidebar').createAffix('h3');
//表示在文章中,使用`h3`標簽的是 需要被添加錨點的地方。
});

解決錨點偏移的問題
因為錨點默認將頁面偏移到錨點元素的頂部,也就是如果我們對標題1進行了上述操作,當我們點擊錨點時,頁面會偏移到'標題1'所在的頂端位置,如果頂端有菜單欄,那么將會被遮住,通過設置css樣式來解決。

.class{
    /*
    添加padding可以讓錨點向下偏移num px,也就是跳過菜單欄的高度,
    通過設置margin-top為負值來`彌補`因為padding-top帶來的空白部分
    */
    padding-top: num px;
    margin-top: -num px;
}

添加滾動監聽
目前我們的DOM文檔是這樣的。

<ul id="mysidebar" class="nav affix" >
<li><a href="#node1"></a></li>
<li><a href="#node2"></a></li>
<li><a href="#node3"></a></li>
</ul>

加工一下,引入uikit屬性,具體查看文檔

<ul id="mysidebar" class="nav affix uk-nav uk-nav-side" data-uk-scrollspy-nav="{closest:'li',smoothscrool:true}" >
<li><a href="#node1"></a></li>
<li><a href="#node2"></a></li>
<li><a href="#node3"></a></li>
</ul>

引入uikit.min.js
由于我們的菜單項(li)是在文檔加載后執行的,那么如果在生成菜單項之前變執行uikit的scrollspy,那么必定不起作用,所以要在菜單項生成后引入uikit.min.js,代碼如下:

$(function(){
$(' #mysidebar').createAffix('h3');//生成菜單
$.getScript("uikit.min.js");//異步載入uikit.min.js,滾動監聽生效。
});


返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      9000px;">

          欧美一区二区日韩一区二区| 91官网在线观看| 五月天激情综合| 亚洲视频在线观看三级| 一区二区中文视频| 久久精品日产第一区二区三区高清版| 欧美天堂一区二区三区| 91成人在线精品| 欧美亚洲禁片免费| 欧美美女一区二区| 欧美二区在线观看| 欧美一区二区福利视频| 日韩精品一区二区三区视频播放| 欧美一级二级三级乱码| 日韩一区二区电影在线| 精品成人一区二区| 中文字幕电影一区| 亚洲欧美一区二区三区极速播放| 亚洲一区二区精品3399| 亚洲va国产va欧美va观看| 蜜桃一区二区三区在线观看| 国产精品一色哟哟哟| 懂色av一区二区在线播放| 91麻豆精品一区二区三区| 欧美色精品在线视频| 欧美一区二区三区在线观看| 精品成人在线观看| 亚洲男帅同性gay1069| 亚洲国产视频a| 国产麻豆成人传媒免费观看| 91麻豆自制传媒国产之光| 在线观看国产日韩| 精品国精品自拍自在线| 亚洲乱码中文字幕| 麻豆精品视频在线观看视频| 国产99久久久国产精品潘金 | 老司机精品视频一区二区三区| 激情综合色播五月| 91网站在线播放| 日韩亚洲欧美综合| 亚洲精品一二三四区| 精品一二三四区| 在线中文字幕不卡| 2024国产精品视频| 亚洲成人av电影在线| 国产精品 欧美精品| 欧美午夜精品久久久久久超碰 | 国产精品亚洲第一区在线暖暖韩国 | 91成人网在线| 国产日产欧美一区| 日韩中文字幕麻豆| 不卡电影一区二区三区| 日韩欧美国产一区在线观看| 亚洲免费大片在线观看| 国产精品亚洲成人| 日韩免费性生活视频播放| 亚洲激情图片一区| 国产不卡在线一区| 欧美精品一区二区三区很污很色的 | 亚洲特黄一级片| 国产大陆精品国产| 精品国产凹凸成av人网站| 亚洲成人福利片| 色婷婷综合在线| 亚洲日本在线观看| 波多野洁衣一区| 国产精品国产三级国产普通话三级 | 国产视频一区不卡| 久久精品99久久久| 91精品国产综合久久婷婷香蕉 | 老司机精品视频在线| 日韩免费电影网站| 日韩专区在线视频| 欧美日韩在线免费视频| 亚洲一区二区三区四区在线免费观看 | 日韩美女视频一区| 色偷偷88欧美精品久久久| 国产精品久久久99| 成人一区二区三区视频在线观看 | 精品久久久久久久一区二区蜜臀| 三级不卡在线观看| 91精品国产综合久久精品app| 亚洲18色成人| 日韩一区二区三| 久久精品免费观看| 精品国产区一区| 国产高清精品网站| 国产精品进线69影院| 91丝袜美腿高跟国产极品老师| 欧美国产精品久久| 色综合夜色一区| 亚洲成人动漫在线免费观看| 欧美夫妻性生活| 精品亚洲aⅴ乱码一区二区三区| 久久久一区二区三区| 成人午夜激情视频| 亚洲色图一区二区三区| 91精品91久久久中77777| 性欧美疯狂xxxxbbbb| 欧美videos大乳护士334| 国产一区999| 一区二区三区久久久| 91精品国产丝袜白色高跟鞋| 国产最新精品免费| 亚洲三级视频在线观看| 欧美精选午夜久久久乱码6080| 极品少妇一区二区| 一区二区三区国产精华| 欧美大黄免费观看| 91麻豆精东视频| 精品一区精品二区高清| 亚洲欧美日韩小说| 久久久美女毛片| 一本高清dvd不卡在线观看| 日本不卡1234视频| 亚洲欧洲日韩女同| 精品欧美久久久| 欧美色图天堂网| 国产精品一区二区在线观看网站| 亚洲男人天堂一区| 久久精品视频一区二区三区| 91黄色激情网站| 国产91丝袜在线播放九色| 亚洲午夜私人影院| 中文字幕av不卡| 精品国产凹凸成av人导航| 欧美写真视频网站| 不卡的av网站| 国产一区二区不卡| 麻豆精品视频在线观看免费| 亚洲线精品一区二区三区八戒| 亚洲国产成人在线| 久久久久久97三级| 日韩三级.com| 欧美精品亚洲一区二区在线播放| youjizz国产精品| 国产精品 欧美精品| 麻豆传媒一区二区三区| 亚洲综合网站在线观看| 日韩毛片视频在线看| 欧美国产欧美综合| 国产欧美视频在线观看| 久久精品人人做人人综合| 精品国产一二三区| 精品国产一区二区亚洲人成毛片 | 韩国视频一区二区| 久久成人麻豆午夜电影| 日日夜夜免费精品| 丝袜a∨在线一区二区三区不卡| 亚洲精品国产视频| 夜夜嗨av一区二区三区中文字幕| 国产精品美女久久久久久久久| 欧美国产乱子伦| 中文字幕在线一区免费| 成人欧美一区二区三区1314 | 欧美午夜精品一区二区蜜桃| 精品视频在线免费观看| 欧美日本一区二区| 91超碰这里只有精品国产| 91精品黄色片免费大全| 欧美电视剧在线看免费| 久久综合给合久久狠狠狠97色69| 欧美r级在线观看| 久久日韩精品一区二区五区| 亚洲精品在线一区二区| 久久九九久精品国产免费直播| 国产无人区一区二区三区| 中文字幕亚洲电影| 亚洲综合av网| 日本伊人午夜精品| 韩日欧美一区二区三区| av不卡在线观看| 欧美久久久一区| 精品日韩av一区二区| 国产色产综合色产在线视频| 中文字幕免费在线观看视频一区| 亚洲色图欧洲色图婷婷| 日日噜噜夜夜狠狠视频欧美人 | 视频在线观看91| 久久av中文字幕片| 不卡的av电影在线观看| 在线免费观看不卡av| 日韩一区二区在线播放| 国产亚洲1区2区3区| 亚洲免费毛片网站| 久久成人av少妇免费| www.成人在线| 欧美一区二区精品在线| 国产精品久久久久久久久免费相片 | 日韩亚洲欧美一区二区三区| 国产欧美久久久精品影院| 亚洲精选视频免费看| 开心九九激情九九欧美日韩精美视频电影| 国产精品99久久久久| 欧美最猛黑人xxxxx猛交| 2020国产精品自拍| 亚洲高清免费在线| 成人一级片网址| 精品欧美乱码久久久久久| 亚洲综合色噜噜狠狠|