加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Anchor链接在Angularjs?

发布时间:2020-12-17 09:04:24 所属栏目:安全 来源:网络整理
导读:是否可以使用锚点链接Angularjs? 也就是说: a href="#top"Top/a a href="#middle"Middle/a a href="#bottom"Bottom/a div name="top"/div ... div name="middle"/div ... div name="bottom"/div 谢谢 有几种方法来做到这一点似乎。 选项1:本机角 Angular
是否可以使用锚点链接Angularjs?

也就是说:

<a href="#top">Top</a>
 <a href="#middle">Middle</a>
 <a href="#bottom">Bottom</a>

 <div name="top"></div>
 ...
 <div name="middle"></div>
 ...
 <div name="bottom"></div>

谢谢

有几种方法来做到这一点似乎。

选项1:本机角

Angular提供了一个$ anchorScroll服务,但是文档严重缺乏,我不能让它工作。

查看http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html有关$ anchorScroll的一些洞察。

选项2:自定义指令/本地JavaScript

另一种测试方法是创建一个自定义指令并使用el.scrollIntoView()。
这通过在你的指令链接功能基本上做以下工作非常正常:

var el = document.getElementById(attrs.href);
el.scrollIntoView();

然而,当浏览器本地支持这两个时,似乎有点夸大了,对吧?

选项3:角度覆盖/本机浏览器

如果你看看http://docs.angularjs.org/guide/dev_guide.services.$location及其HTML链接重写部分,你会看到链接不会在以下重写:

Links that contain target element

Example: <a href="/ext/link?a=b" target="_self">link</a>

所以,你需要做的是添加target属性到你的链接,像这样:

<a href="#anchorLinkID" target="_self">Go to inpage section</a>

Angular默认为浏览器,并且由于它的锚点链接而不是不同的基本URL,浏览器根据需要滚动到正确的位置。

我使用选项3,因为它最好依赖本地浏览器功能,并节省我们的时间和精力。

注意,在成功滚动和哈希更改后,Angular会跟踪并重写哈希到其自定义样式。但是,浏览器已经完成了其业务,你很好去。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读