在 Angular 4 中单击时滚动到元素 [英] Scroll to element on click in Angular 4

查看:28
本文介绍了在 Angular 4 中单击时滚动到元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够在按下按钮时滚动到目标.我在想这样的事情.

I want to be able to scroll to a target when a button is pressed. I was thinking something like this.

<button (click)="scroll(#target)">Button</button>

在我的 component.ts 中,有一个类似的方法.

And in my component.ts a method like.

scroll(element) {
    window.scrollTo(element.yPosition)
}

我知道上面的代码无效,只是为了表明我的想法.我刚刚开始学习 Angular 4,之前没有 Angular 经验.我一直在寻找类似的东西,但所有的例子都在 AngularJs 中,它与 Angular 4 有很大不同

I know that the code above is not valid but just to show what I was thinking. I've just started to learn Angular 4 with no previous experience of Angular. I've been searching around for something like this but all the examples are in AngularJs which differs alot to Angular 4

推荐答案

你可以这样做:

<button (click)="scroll(target)"></button>
<div #target>Your target</div>

然后在您的组件中:

scroll(el: HTMLElement) {
    el.scrollIntoView();
}

我看到评论指出由于未定义元素,这不再有效.我在 Angular 7 中创建了一个 StackBlitz 示例,它仍然有效.有人可以提供一个不起作用的例子吗?

I see comments stating that this no longer works due to the element being undefined. I created a StackBlitz example in Angular 7 and it still works. Can someone please provide an example where it does not work?

这篇关于在 Angular 4 中单击时滚动到元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆