2014-09-02 49 views
0

我做了平滑滾動。但它工作不正確。 只有當您再次按下時纔會觸發,但在網址中即時更改哈希值。使用window.location.hash時光滑滾動工作不正確

$('nav').click(function(e){ 
     if(window.location.hash == "#block1") { 
      $('html,body').animate({ 
       scrollTop: ($('#block1').offset().top) 
      }) 
     } 
     else if(window.location.hash == "#block2") { 
      $('html,body').animate({ 
       scrollTop: ($('#block2').offset().top) 
     }) 
     } 
    }) 

回答

0

你應該避免click事件的默認行爲:

$('nav').click(function(e){ 
    e.preventDefault(); 
    //continue... 

希望這有助於。

編輯:

這應該做的伎倆:

$('nav').click(function(e){ 
    e.preventDefault(); 

    var section = $(this).attr('href'); 

    if(section == "#block1") { 
     window.location.hash = "#block1"; 

     $('html,body').animate({ 
      scrollTop: ($('#block1').offset().top) 
     }); 
    } 
    else if(section == "#block2") { 
     window.location.hash = "#block2"; 

     $('html,body').animate({ 
      scrollTop: ($('#block2').offset().top) 
     }); 
    } 
}); 

瓦列裏

+0

感謝,但它不能正常工作( – 2014-09-02 07:24:08

+0

它的工作謝謝 – 2014-09-02 08:38:18

+0

大祝您的項目:-)! – 2014-09-02 10:13:01