[Angularjs]锚点操作服务$anchorScroll

写在前面

有个单页应用的项目中,需要通过锚点进行页面的定位。但angularjs的路由会出现跟锚点冲突,angularjs会将锚点当成路由进行解析,造成跳转到这个页面,而我们需要的只是跳转到当前的锚点位置。angularjs的路由格式#/home/en。比如锚点的id为navigate-label,当触发跳转到锚点时,会出现#/navigate-label.

解决办法

angularjs提供了一个$anchorScroll,用来实现锚点的功能。

用法如下:

在controller中引入$anchorScroll.

在该controller中,就可以通过下面的方式实现当前页面锚点定位。

app.controller('MyController', function ($scope, $anchorScroll, $http, $location, $routeParams, $translate) {
            $location.hash('navigate-label');
            $anchorScroll();
});

如果发现没效果,可能因为页面上ng-repeat的东西没加载完成。可添加指令。具体解决办法可参考我这篇文章:

http://www.cnblogs.com/wolf-sun/p/5089637.html

posted @   wolfy  阅读(1889)  评论(3编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2014-03-22 [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
点击右上角即可分享
微信分享提示