97超碰在线公开|在线欧美亚洲综合|在线免费一区二区|久久精品麻豆婷婷|亚洲AV性爱在线|欧美在线综合久在线|国产香线蕉手机视频自拍亚洲|成人嫩草视频HD|色香蕉五月社区|亚洲欧美第一视频

                    
                    
                    
                    
                    284292114@qq.com 中國(guó)站
                    行業(yè)新聞 網(wǎng)站建設(shè) 網(wǎng)絡(luò)推廣 首頁(yè)>新聞中心>網(wǎng)站建設(shè)

                    外貿(mào)網(wǎng)站的需求,自動(dòng)獲取網(wǎng)頁(yè)內(nèi)容中的h2標(biāo)簽并添加到側(cè)邊欄作為定位

                    時(shí)間:2025-06-24   訪問(wèn)量:0

                    如題:客戶提出這樣一個(gè)奇怪的需求。

                    自動(dòng)獲取網(wǎng)頁(yè)內(nèi)容中的h2標(biāo)簽并添加到側(cè)邊欄作為定位,然后點(diǎn)擊側(cè)邊欄的標(biāo)題,右邊的文章側(cè)定位到對(duì)應(yīng)的位置。

                    經(jīng)過(guò)多次修改測(cè)試后,以下方法非常簡(jiǎn)單就實(shí)現(xiàn)了這個(gè)功能。

                    要是在WP上,不得又是各種插件才能實(shí)現(xiàn)。

                    第一步:

                    給新聞詳情加上class類:例如我給詳情添加了new-pages來(lái)作為唯一標(biāo)識(shí)。

                    如:

                    <div class="content new-pages fs-14 fs-sm-16 lh-2 mb-3" >
                                  新聞詳情內(nèi)容
                     </div>

                    然后在側(cè)邊欄添加:

                     <div class="nav ">          
                                    <div id="outputnav" class="nav-left-menu mb-2"></div>
                               </div>

                    用于接收輸出獲取到的H2標(biāo)題。


                    然后使用JS如下:

                    document.addEventListener("DOMContentLoaded", function () {
                      const content = document.querySelector('.new-pages'); // 固定容器
                      const tocContainer = document.getElementById('outputnav');
                    
                      if (!content || !tocContainer) return;
                    
                      // 遞歸查找 .new-pages 中的所有 h2(不管嵌套在哪個(gè) div 中)
                      const headings = content.querySelectorAll('h2');
                    
                      headings.forEach((heading, index) => {
                        const anchorId = 'page' + (index + 1);
                    
                        // 避免重復(fù)添加錨點(diǎn)
                        if (document.getElementById(anchorId)) return;
                    
                        // 創(chuàng)建錨點(diǎn)偏移
                        const offsetDiv = document.createElement('div');
                        offsetDiv.className = 'anchor-offset';
                        offsetDiv.id = anchorId;
                        heading.parentNode.insertBefore(offsetDiv, heading); // 插入到 h2 前面
                    
                        // 創(chuàng)建目錄鏈接
                        const link = document.createElement('a');
                        link.href = '#' + anchorId;
                        link.className = 'toc-link';
                        link.innerHTML = `
                          <div class="i"><i class="bi bi-info-circle-fill fs-12"></i></div>
                          <div class="name">${heading.textContent.trim()}</div>
                        `;
                    
                        tocContainer.appendChild(link);
                      });
                    });

                    JS的作用就是:

                    1:遞歸查找H2標(biāo)簽,并獲取到他的標(biāo)題,存入到:outputnav中,

                    2:添加A標(biāo)簽,鏈接為:#page1, #page2,#page3等,同時(shí)添加:toc-link

                    最終形成:

                    <div class="nav ">          
                                    <div id="outputnav" class="nav-left-menu mb-2">
                                    <a href="#page1" class="toc-link"><div class="i"><i class="bi bi-info-circle-fill fs-12"></i></div><div class="name">標(biāo)題1</div></a>
                                    <a href="#page2" class="toc-link"><div class="i"><i class="bi bi-info-circle-fill fs-12"></i></div><div class="name">標(biāo)題2</div></a>
                                    <a href="#page3" class="toc-link"><div class="i"><i class="bi bi-info-circle-fill fs-12"></i></div><div class="name">標(biāo)題3</div></a>
                                  </div>             
                      </div>

                    3:給文章中添加偏移錨點(diǎn):

                    <div class="anchor-offset" id="pageID號(hào)"></div>


                    最后稍微寫一下樣式就可以了。

                    .anchor-offset {
                        display: block;
                        position: relative;
                        top: -80px;
                        height: 0;
                        visibility: hidden;
                    }
                    .nav-left-menu .toc-link{
                       display: flex;
                       margin-bottom: 15px;
                        font-size: 16px;
                    }
                    
                    .nav-left-menu .toc-link .i{
                      width:20px;
                    }
                    
                    .nav-left-menu .toc-link .i i{
                       transform: scale(1.5);
                    }
                    
                    .nav-left-menu .toc-link .name{
                       width:calc(100% - 20px);
                    }



                    服務(wù)咨詢
                    1對(duì)1咨詢,專業(yè)客服為您解疑答惑
                    聯(lián)系銷售
                    15899750475
                    在線咨詢
                    聯(lián)系在線客服,為您解答所有的疑問(wèn)