You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中点击跨组件按钮滚动到目标组件的实现问询

Angular组件内按钮点击滚动到另一个组件的实现方案

步骤1:给Banner组件的按钮绑定点击事件

修改Banner组件的模板,为按钮添加点击触发方法:

<div id='banner' class="col-5 offset-1 d-flex justify-content-center align-items-center">
    <button class="btn mt-5" (click)="scrollToServices()">
        <span class="mx-3">Go</span>
    </button>
</div>

步骤2:编写滚动逻辑

在Banner组件的TypeScript文件中,注入DOCUMENT对象实现滚动功能:

import { Component, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';

@Component({
  selector: 'app-banner',
  templateUrl: './banner.component.html',
  styleUrls: ['./banner.component.css']
})
export class BannerComponent {
  constructor(@Inject(DOCUMENT) private document: Document) {}

  scrollToServices(): void {
    // 通过ID定位目标组件的DOM元素
    const servicesElement = this.document.getElementById('services');
    if (servicesElement) {
      // 平滑滚动到目标位置,可自定义滚动行为与对齐方式
      servicesElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
    }
  }
}

步骤3:修正Services组件的模板语法错误

你的Services组件模板存在标签未闭合问题,修正后代码:

<div id="services" class="container-fluid">
</div>

完成以上配置后,点击Banner组件中的「Go」按钮,页面将平滑滚动到Services组件所在位置。

内容的提问来源于stack exchange,提问作者Sarkhan Hadjibayov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:15:06