javascript - scrollIntoView() 不适用于应用程序选择器
问题描述
有谁知道滚动到锚点的正确实现。这种方法不起作用: Angular2 滚动到具有 *ngIf 的元素
这是引用其他组件的模板:
<app-app1 id="id1"></app-app1>
<app-app2 id="id2"></app-app2>
<app-app3 id="id3" *ngIf="test"></app-app3>
通过单击一个按钮,我想滚动到相应的部分:
let elm = document.querySelector("#id1");
if (elm)
elm.scrollIntoView();
scrollIntoView() 已执行,但它滚动到错误的位置(如部分的中间)并且根本不适用于 app-app3。
解决方案
我这样修复它: 1. 从应用选择器组件中删除“id3”:
change: <app-app3 id="id3" *ngIf="test"></app-app3> to: <app-app3 *ngIf="test"></app-app3>
- 将新的 div 放在组件的最顶部:
<div id="id3"></div>
- 改变:
let elm = document.querySelector("#id3"); if (elm) elm.scrollIntoView();
至:
let elm = document.getElementById("id3"); elm.scrollIntoView({behavior: "instant", block: "center", inline: "center"});
推荐阅读
- javascript - 通过变量名调用 jquery 插件
- ruby-on-rails - Ruby on Rails:尝试基于一组值发出多个 API 请求。如何将这些值作为参数插入 API URL?
- python - 如何向量化词标记字典(词袋实现)
- python - 我在检查过的标签和类之后进行了网络抓取,它返回无
- c# - 不断检查进程是否打开
- assembly - 32 位程序集引导加载程序在 VM/qemu 中有效,但在真实 PC 上无效
- oracle - 如何获取在 rds 上运行的 oracle 数据库的主机名
- python - LOG 问题 sklearn 错误 ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 而言太大的值
- javascript - 将 JavaScript 函数重构为 TypeScript?
- rust - Rust 中的多个过滤案例