我有一個菜單鏈接到頁面上的錨點(全部內置WordPress)。例如:根據點擊錨點鏈接更改URL
<nav id="primary">
<ul>
<li><a href="#services">Services</a></li>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#blog">Blog</a></li>
</ul>
</nav>
<div class="container">
<section id="services">Lorem ipsum dolor sit amet</section>
<section id="about">Lorem ipsum dolor sit amet</section>
<section id="portfolio">Lorem ipsum dolor sit amet</section>
<section id="blog">Lorem ipsum dolor sit amet</section>
</div>
錨點ID還與我網站上的slug名稱相關。
我正在創建一個浮動邊欄,其內容會根據點擊的部分進行更改。當您滾動頁面時,浮動邊欄顯然會保持固定在容器的側面。例如,當點擊「關於」時,浮動邊欄可能會顯示「詳細瞭解XYZ」鏈接到關於頁面。我可能會在每個頁面上使用自定義字段來生成浮動邊欄中的文本。
我的問題是獲取此功能,其中浮動邊欄中的文本和鏈接基於點擊導航中的鏈接而發生變化。從我的網頁獲取動態文本和鏈接是不需要的,我可以在以後使用WordPress功能來弄清楚。
我不知道如何去做這個...也許jQuery是正確的解決方案?如果是這樣,我只是不知道如何實現它。
編輯我試圖實施下面的一些建議。我現在的HTML和JS如下: HTML
<header class="site-header">
<nav class="nav-primary">
<ul>
<li><a href="#services" data-href="/services">Services</a></li>
<li><a href="#about" data-href="/about">About</a></li>
<li><a href="#portfolio" data-href="/portfolio">Portfolio</a></li>
<li><a href="#blog" data-href="/blog">Blog</a></li>
</ul>
</nav>
</header>
<div class="site-inner">
<div class="content-site-wrap">
<section id="services">Lorem ipsum dolor sit amet</section>
<section id="about">Lorem ipsum dolor sit amet</section>
<section id="portfolio">Lorem ipsum dolor sit amet</section>
<section id="blog">Lorem ipsum dolor sit amet</section>
</div>
</div>
JS
$(document).on('click', '.nav-primary a', function(){
html = $('<a href="' + $(this).data('href') + '">' + $(this) + '</a>');
$('.site-inner').html(html);
});
對不起,延遲響應。我無法完全實現這一點,儘管使用了您建議的代碼,但更改鏈接不起作用。我用當前的代碼更新了這個問題。 TIA –
@NWTech您正在JS中使用數據屬性,但尚未將它們添加到您的標記中。請在這裏看到一個演示http://fiddle.jshell.net/TW3tp/1/ – Mina