2013-06-01 26 views
1

我正在水平滾動網站上工作 網站(藍圖)工作得很好,動畫工作順利,萬事俱備。 但是,當我想添加window.location.hashba-hashchange插件在這種情況下不起作用。Animate偏移量()。左側帶哈希值變化jQuery

$(document).ready(function(){ 

$("nav").delegate("a", "click", function(event) { 
    window.location.hash = $(this).attr("href"); 
    return false;  
}); 

var newHash  = ""; 
$(window).bind('hashchange', function(){ 

    newHash = window.location.hash; 
    if (newHash) { 
     $('body,html').stop().animate({ 
      scrollLeft: $(newHash).offset().left 
     }, 2500,'easeInOutExpo'); 
    }; 

}); 

    $(window).trigger('hashchange'); 
}); 

這裏是活生生的例子,而不hashChange WITHOUT HASH EXAMPLE

這裏有hashChange WITH HASH EXAMPLE

Basicly就是我想做的事:

  1. 在點擊導航新window.location.hash設置
  2. 帶函數'hashchange'的插件hash hash
  3. 當特定哈希動畫導演 「ID」

做什麼用的哈希發生:

  1. 在點擊網址變更
  2. 功能 「hashchange」 做工作,因爲當u放警報(newHash)相反,它動畫顯示實際散列,動畫不起作用。
  3. 當u把與哈希鏈接改變它的工作原理HASH CHANGED SERVER PATH/#portfolio

請幫我用動畫偏移hashchange結合。 謝謝!

回答

0

的變化ID數據-ID,並導航到不陳吉偉ID

var adres = location.hash.substring(1); 


if (newHash) { 
      $('html, body').stop().animate({ 
       scrollTop: $("div[data-id='" + adres + "']").offset().top, 
       scrollLeft: $("div[data-id='" + adres + "']").offset().left 
      }, 1500,'easeInOutExpo'); 
} 

G ood luck all :)

0

試試這個

一類添加到您的所有錨 「.scroll

例如:<a href="#main" class="scroll">Home</a>

$(document).ready(function(){ 
    var newHash = ""; 
     $(".scroll").click(function(event){ 
     //prevent the default action for the click event 
     event.preventDefault(); 
     var full_url = this.href; 
     var parts = full_url.split("#"); 
     var trgt = parts[1]; 
     var target_offset = $("#"+trgt).offset(); 
     var target_top = target_offset.top; 
     $('html, body').animate({scrollTop:target_top}, 1500,function(){window.location.hash = "#"+trgt;}); 
    return false; 
     }); 
    }); 
+0

對不起,但我沒看到它應該如何處理「hashchange」,我想要使用給IE瀏覽器的問題。而那些你所做的代碼說了我不需要的scrollTop。無論如何 –