簡體   English   中英

單擊鏈接后存儲HREF值

[英]Storing HREF value after clicking link

所以我是JavaScript / jQuery的新手,我一直在嘗試將它一點一點地應用到我的網站(www.joeyorlando.me)。

我正在嘗試解決的當前問題是當用戶點擊頁面頂部的一個鏈接時(即用戶點擊“背景”和頁面),我的網站會慢慢向下滾動頁面到正確的部分慢慢向下滾動到“背景”)。 理想情況下,我甚至希望滾動功能稍微超過該部分的頂部(可能是50-100px),然后順利地“反彈”回到該部分的頂部。

我的想法是存儲來自點擊鏈接的HREF值,然后使用此href值讓頁面向下滾動到該部分。 我現在只關注第一部分,存儲點擊鏈接的HREF值,這是我到目前為止但它沒有正常工作,控制台一直告訴我,當我嘗試檢查值時,未定義HREF單擊其中一個鏈接后的HREF。

HTML代碼

<nav>
  <ul>
    <li><a href="#about">About</a></li>
    <li><a href="#background">Background</a></li>
    <li><a href="#research">Research</a></li>
    <li><a href="#travels">Travels</a></li>
    <li><a href="#contact">Contact Me</a></li>
  </ul>
</nav>
<body>
  <div id="about"></div>
  <div id="background"></div>
  <div id="research"></div>
  <div id="travels"></div>
  <div id="contact"></div>

JavaScript代碼

 $('nav ul li a').click(function() {
     window.location.href =  $(this).attr('href');
    var href =  $(this).attr('href');
 });

此外,布朗尼指向任何可以給我建議讓頁面慢慢向下滾動到正確位置的人。 我嘗試使用.scrollTo(),但它對我來說不正常:(

先謝謝你們!

為什么你還需要存儲href?

用這個:

$(document).ready(function() {
    $('ul li a').click(function() {
        var id = $(this).attr('href');
        $('html, body').animate({
            scrollTop : $(id).offset().top
        }, 500);
    });
});

在這里小提琴: http//jsfiddle.net/fd7U7/

這是對LorDex給出彈跳效果的答案的略微修改:

$(document).ready(function() {
    var body = $('html, body');
    $('ul li a').click(function() {
        var id = $(this).attr('href');
        var elem = $(id);
        var direction = elem.offset().top > $(document).scrollTop() ? 1 : -1;
        body.animate({
            scrollTop : elem.offset().top + (50 * direction)
        }, 500).promise().then(function() { 
            body.animate({
                scrollTop: elem.offset().top
            }, 500)
        });

    });
});

http://jsfiddle.net/fd7U7/3/

它將通過首先計算它是向上還是向下滾動來向任一方向反彈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM