html - 如何让页面滚动到较长文本中的特定单词

标签 html angular typescript scroll

我有一个很长的文本,并且希望(如果我之前选择了一个单词)页面在按下按钮后自动滚动到该元素。这个词所在的文本比这个长得多,我只是想证明我的问题。

<div (click)="scrollto()">scroll to word</div>
<div id="text">lsja dflkasjdf laksj dflkasj scrollhere saldfj asljfals dfalsjölas dfasjd fajsdlfa jsdldsa fasl falsd flasf</div>

.ts 文件:

scrollto() {
  const word = 'scrollhere';

我必须在 Typescript 代码中编写什么才能让页面滚动到单词“scrollhere”?

最佳答案

一种方法是将要滚动到的单词包装在 span 或其他语义元素中,以便您可以在 .ts 文件中引用它。像这样的事情:

<span #scrollHere>scrollhere</span>

然后在你的.ts中

@ViewChild('scrollHere', { static: true }) scrollHere;


scrollTo() {
  this.scrollHere.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });
}

关于html - 如何让页面滚动到较长文本中的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687173/

相关文章:

angular - typescript - 类型 'userId' 上不存在属性 'unknown'

typescript - 如何在 TypeScript 中使用 TimeSpan

css - div 元素有边距

angular - 等待第 3 方 JS 库在 Angular 2 服务中完成初始化的最佳方法?

typescript - Angular2 @ TypeScript error rxjs/Subject::filtering when user stops typing

angular - 如何在 angular4 中嵌入 typeform 小部件

angular - 如何修复 Angular 中的数据无法从服务传输到模块的问题

html - a::before 伪元素中的多个值

html - 向我的 HTML div 添加边框会移动我的文本

css - Firefox CSS : Given 2 divs, 如何使用静态定位将*第二个* 1 向右浮动?