2017-07-07 164 views
0

這是我的。
點擊功能可以工作並跳轉到該部分的部分,但滾動動畫不起作用。jQuery的頁面動畫不是動畫

我做錯了什麼?

<nav class="navbar navbar-inverse navbar-fixed-top" id="my-navbar"> 
     <div class="container text-right"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 

      </div> 

<div class="collapse navbar-collapse text-left" id="navbar-collapse" > 
    <ul class="nav navbar-nav"> 
    <li><a href="#home">Home</a></li> 
    <li><a href="#skills">Skills</a></li> 
    <li><a href="#feedback">Feedback</a></li> 
    <li><a href="#about">About me</a></li> 
    <li><a href="#contact">Contact</a></li> 
    </ul> 
</div> 

<script> 
    $("#navbar").on("click", function(e) { 
    e.preventDefault(); 
    var section = $(this).attr("href"); 
    $("html, body").animate({ 
     scrollTop: $(section).offset().top 
    }, 1500); 
    });  
</script> 

回答

1

還有就是你的頁面上的任何元素#navbar,因此點擊事件永遠不會被解僱,並在瀏覽器的行爲只是像往常一樣(跳轉到錨) - 使用類似#navbar-collapse,或.nav a嘗試。

0

更改了jQuery是這樣的:

$(".navbar-nav a").on("click", function(e) { 
    e.preventDefault(); 
    var section = $(this).attr("href"); 
    $("html, body").animate({ 
     scrollTop: $(section).offset().top 
    }, 1500); 
    }); 

你的選擇是錯誤的。您沒有編號爲navbar的元素,這意味着您的事件偵聽器甚至沒有觸發。這就是爲什麼它不動畫。