2015-03-02 41 views
0

我创建了一个非常基本的网站,其中包含可以单击的项目列表,然后查看有关该项目的更多详细信息。Backbone.js路由和滚动位置

我遇到的问题是,当您向下滚动项目列表,然后转到项目详细信息视图时,它不会将滚动位置重置为顶部。所以你在新页面的底部,这是令人讨厌的。

我是Backbone.js的新手 - 有没有人遇到过这个?

回答

1

我发现我的项目(与骨干)相同的问题。使用该解决方案是:

App.Router.on("route", function(data){ 
    $(document).scrollTop(0); 
}); 

所以,每次路由被调用时,之前呈现新的视图,文档页面返回自动在上面。我希望能够提供帮助。 记住,你需要“绑定”这对1次,而不是每个视图)

编辑: 如果路由不是“触发”当你创建新页面,应用此行

$(document).scrollTop(0); 

正确的事件:)

EDIT2: 看你的代码(最后一部分)

var projects = new App.Views.Projects(); 
var project = new App.Views.Project(); 

var theRouter = Backbone.Router.extend({ 
     routes: { 
      '': 'home', 
      ':id': 'project' 
     }, 

     home: function() { 
      projects.render(); 
     }, 
     project: function(id) { 
      project.render({id: id}); 
     } 
    }); 

    var router = new theRouter(); 

    router.on('route', function() { 
     // MAKE SURE ROUTING BIND IS CALLED 
     console.log("Hey, im routing !!!"); 
     $(document).scrollTop(0); 
    }); 

    Backbone.history.start(); 

试试这个

+0

我本来'window.scrollTo(0,0);'在我的视图渲染方法。所以它会渲染,然后回滚到顶部导致闪烁。将尝试它的路线事件,谢谢:) – Chris 2015-03-03 10:30:15

+0

似乎仍然闪烁:( – Chris 2015-03-03 12:26:12

+0

似乎奇怪,你可以添加一些图片和一些代码?也许我可以帮助更好。 – Aethiss 2015-03-03 15:05:13