我在我的应用中设置了html5mode(true)
,我的所有内容都在一个视图中。
预先角色的想法是用户点击关于,它会滚动到#about
元素。这对jquery非常有用,因为您可以轻松地为滚动设置动画并使其变得美观和流畅。
angularjs但是我正在努力如何使用路由完成此操作,并且仍然保留jquery幻灯片交互,而不重新加载我的路由中定义的模板/视图。
理想情况下,我想拥有example.com/about
,example.com/contact
这样的网址,并让他们在幕后滚动到该元素。
我不知道如何以最佳方式考虑angularjs。
任何帮助?
修改 这是我到目前为止所尝试的,似乎在没有动画的情况下有点工作..
在我的NavigationController中我有以下内容..
$scope.scrollTo = $rootScope.$on('$locationChangeStart', function(e, n, c){
e.preventDefault();
$location.hash('about');
$anchorScroll();
});
但是,这仅在用户点击页面上的按钮时才有效,并且根本不考虑该URL。
答案 0 :(得分:0)
(不是我的代码)
锚点包含在网址中,
<a href="#test?scrollTo=foo">Test / Foo</a>
<a href="#weee?scrollTo=bar">Weee / Bar</a>
并且模块上的run函数执行哈希技巧..
app.run(function($rootScope, $location, $anchorScroll, $routeParams) {
$rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) {
$location.hash($routeParams.scrollTo);
$anchorScroll();
});
})
希望这可以帮助你..