2015-02-24 33 views
0

我有一个页面分为一个部分。除了一件事外,它完美的工作,脚本滚动页面到特定的部分,但如果我会击中多个链接,它会一次一个地将我发送到每个点击链接。Javascript单页滚动脚本滚动到每个点击的链接一个接一个

jQuery(window).bind("load", function() { 
    var hash = window.location.hash; 

    hash = hash.replace("#", ""); 

    var elem = jQuery(".pb-line-css-group-" + hash); 

    menu_scroll_to(elem); 
}); 

jQuery(document).ready(function() { 

    jQuery(".menu-item A").click(function() { 
     var hash = jQuery(this).attr('href'); 

     hash = hash.replace("#", ""); 
     hash = hash.replace("/", ""); 

     var elem = jQuery(".pb-line-css-group-" + hash); 

     menu_scroll_to(elem); 
    }); 
}); 

function menu_scroll_to(elem) { 

    if (elem) { 
     jQuery('html, body').animate({ 
      scrollTop: elem.offset().top - 70 
     }, 2000, "easeOutQuint"); 
    } 

} 

我想滚动到只有第一次点击的链接,如果我将在滚动过程中再创链接不会滚动到这些位置

+0

我建议你看看一些稳定的解决方案,如[fullPage.js](http://alvarotrigo.com/fullPage/)。当你开始考虑触摸屏设备,触摸笔记本电脑,动画性能,跨浏览器兼容性,旧浏览器兼容性,回调,无限滚动,键盘可访问性,响应能力等时,试图重塑车轮只会让你更加头疼。 – Alvaro 2015-02-26 12:58:46

回答

0

我想你需要一个特殊的标志,例如'window.scrolling',在滚动前将其设置为true,在滚动后将其设置为false。当用户尝试点击链接时,在第一个人正在工作时,它不会执行任何操作。

相关问题