javascript - 在 Angular 2 中添加和删除类选择器

标签 javascript html angular

我有一个页面标题组件,我想根据窗口滚动值更改其样式。如果滚动值大于某个值,我想添加一个类。我有 jquery 中的代码。

$(window).scroll(function() {
    if ($(document).scrollTop() > 150) {
        $('.navbar').addClass('shrink');
    } else {
        $('.navbar').removeClass('shrink'); 
    }
});

http://bootsnipp.com/snippets/z1Dx8

到目前为止,我已经能够获取滚动值了

renderer.listenGlobal('window', 'scroll', (event) => {
      const number = this.document.body.scrollTop;
      if (number > 150) {
        // add logic
      } else {
        // remove logic
      }
    });

我想我不能使用viewchild,因为我想像上面的jquery代码一样添加/删除每个html元素的收缩。

最佳答案

您可以使用angular2class binding ,在代码中根据滚动值将 bool 属性设置为 truefalse,如下所示:

renderer.listenGlobal('window', 'scroll', (event) => {
  let number = this.document.body.scrollTop;

  this.addShrinkClass = number > 150;
});

并在您的 .navbar 标记上使用 [class.shrink] 绑定(bind),如下所示:

<div class="navbar" [class.shrink]="addShrinkClass"></div>

关于javascript - 在 Angular 2 中添加和删除类选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309070/

相关文章:

javascript - 如何从最接近的 'tr' 的第 n 个元素获取值?

javascript - 如何使用刷新更改 CSS 中的随机背景

javascript - 之前和之后的捕获位置

javascript - 如何在 html 中打开 MS Office Outlook

html - 如何在容器宽度为百分比的情况下使用绝对位置在图像上定位文本

html - 使一个 div 显示在另一个下方

angular - Flex-layout 半固定位置

javascript - 确定是否单击了 Google Chrome 打印预览中的打印/取消按钮

angular - Chart.js 在放大 8 Angular 之前不会呈现

java - 是否可以在 IBM Websphere Application Server 上部署 Angular 应用程序?