2014-04-06 210 views
0

我想在同一頁面上使用錨點進行平滑滾動。 我的所有錨都分佈在不同水平或/和垂直水平的頁面上。 我在下面得到了這段代碼,它只能在垂直滾動的情況下很好地工作,並且不能水平滾動。 我該怎麼做才能使滾動同時垂直和水平?垂直和水平兩個錨點之間的平滑滾動

$(function() { 

// scroll handler 
var scrollToAnchor = function(id) { 

// grab the element to scroll to based on the name 
var elem = $("a[name='"+ id +"']"); 

// if that didn't work, look for an element with our ID 
if (typeof(elem.offset()) === "undefined") { 
    elem = $("#"+id); 
} 

// if the destination element exists 
if (typeof(elem.offset()) !== "undefined") { 

    // do the scroll 
    $('html, body').animate({ 
      scrollTop: elem.offset().top 
    }, 1000); 

} 
}; 

// bind to click event 
$("a").click(function(event) { 

// only do this if it's an anchor link 
if ($(this).attr("href").match("#")) { 

    // cancel default event propagation 
    event.preventDefault(); 

    // scroll to the location 
    var href = $(this).attr('href').replace('#', '') 
    scrollToAnchor(href); 

} 

}); 

}); 

回答

0

你應該動畫scrollLeft屬性,以及...

$('html, body').animate({ 
      scrollTop: elem.offset().top, 
      scrollLeft: elem.offset().left 
}, 1000); 

或者使用jQuery的scrollTo插件。

+0

啊,是的,我搞砸了:在我的代碼中有一個錯字來添加左邊,這就是爲什麼它不起作用。是的,我也在看scrollTo插件。謝謝! – progresser