【问题标题】:Scroll to anchor link in a Sammy.js project滚动到 Sammy.js 项目中的锚链接
【发布时间】:2012-02-19 17:08:24
【问题描述】:

我正在使用 sammy.js 框架构建一个网站。我有一个不变的侧边栏,以及在 sammy 的帮助下加载不同页面的主要内容视图。在侧栏上,我有新闻文章的链接。目前,侧边栏上的任何文章链接都只加载 #/news 路由。但我希望它加载路线并向下滚动到文章。一旦加载路由以向下滚动到文章,我尝试使用锚链接触发器,但我在 sammy 应用程序中遇到错误。关于如何实现这一点的任何想法?

【问题讨论】:

    标签: jquery sammy.js


    【解决方案1】:

    似乎是一个老问题,但因为它仍然没有答案......

    您必须将您的 URL 定义为正则表达式,并在其末尾允许一个可选的书签哈希:

    get(/#\/news(#.+)?/, function() {
        var articleId = this.params['splat'];
    });
    

    这将匹配以下任何路线:

    • #/新闻
    • #/新闻#
    • #/news#my-news-article

    然后您应该能够使用 articleId 找到匹配的元素并手动滚动。例如在上面的最后一条路线中,'articleId' 将是 '#my-news-article',因此使用 jQuery 你可以执行以下操作:

    var $article = $(articleId);
        $(document.body).animate({ scrollTop: $article.offset().top });
    });
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2012-12-25
      • 2013-05-08
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      相关资源
      最近更新 更多