javascript - 打字稿中的 Javascript
问题描述
实际上每个 Javascript 代码在打字稿中也应该是有效的,但是当我尝试运行下面的代码时,我得到了下面的错误。有人可以用打字稿写这个javascript代码吗?
Error: 20: 9 - error TS2531: Object is possibly 'zero'.20 document.getElementById ("navbar"). Style.top = "0";
组件.ts
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("navbar").style.top = "0";
} else {
document.getElementById("navbar").style.top = "-50px";
}
prevScrollpos = currentScrollPos;
}
html:
<nav class="navbar navbar-expand-lg navbar-dark pb_navbar pb_scrolled-light w3-animate-right navlist-right " id="navbar">
<div class="container">
<a class="navbar-brand" href="index.html"></a>
<button class="navbar-toggler d-block d-sm-none" (click)="toggleNavbar()" type="button" data-toggle="collapse" data-target="#probootstrap-navbar" aria-controls="probootstrap-navbar" aria-expanded="true" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse " [ngClass]="{ 'show': navbarOpen }" id="onright">
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a class="nav-link" href="#" (click)= " NavBar()" >Home </a></li>
<li class="nav-item"><a class="nav-link" href="#service" (click)= " NavBar()">Service</a></li>
<li class="nav-item"><a class="nav-link" href="#blog" (click)= " NavBar()">Blog</a></li>
<li class="nav-item"><a class="nav-link" href="#contact" (click)= " NavBar()">Contact</a></li>
</ul>
</div>
</div>
</nav>
解决方案
为此,请尝试使用其类型包装 document.getElementById("navbar") 然后您还可以使用安全导航器,它是?仅在较早的对象不为空时导航
推荐阅读
- jquery - Jquery 不适用于 DOM 更改
- terminal - 通过 kill 优雅地杀死 rosbag
- eclipse - 在 Eclipse 中,一种无需移动鼠标即可查看代码错误的方法?
- javascript - 在特定包含的 php 文件中加载 js 文件
- docker - Docker Swarm - 一些任务容器在部署时没有更新
- typescript - Typescript:在另一个类上扩展泛型类型的泛型类型
- python - 如何避免在打印出字典的末尾打印逗号?
- c - 当 double 值超出 char 范围时,C 中的 Double 到 char 转换规则
- ionic3 - ionic angularx-qr 代码模板解析错误
- c# - 我的合并排序实现有什么问题