javascript - 在 Angular 中使用可见性 API?

标签 javascript angularjs

我已经在类似于此的 Angular 组件的构造函数中实现了 Visibility API

constructor() {
    var hidden, state, visibilityChange;
    if (typeof document.hidden !== "undefined") {
        hidden = "hidden";
        visibilityChange = "visibilitychange";
        state = "visibilityState";
    }

    document.addEventListener(visibilityChange, function() {
        if(status == hidden){
            console.log("Hidden");
        }
        else if(status != hidden){
            console.log("Visible");
        }
    }, false);
}

pauseVideo(){
    //Video pause code
}

我需要暂停视频,即在 Visibility 更改为 hidden 时调用 pauseVideo() 方法,我该怎么做?

最佳答案

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnDestroy, OnInit {
  constructor() {}

  @HostListener('document:visibilitychange', ['$event'])
  visibilitychange() {
    this.checkHiddenDocument();
  }

  checkHiddenDocument() {
    if (document.hidden) {
      this.pauseVideo();
    } else {
      this.playVideo();
    }
  }

  ngOnInit(): void {}

  ngOnDestroy(): void {}
}

您可以使用 hostlistenervisibilityChange事件。然后查看document.hidden的状态执行一种方法或其他方法。

关于javascript - 在 Angular 中使用可见性 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751656/

相关文章:

javascript - 检查用户是否可以上传文件的最佳方法是什么?

angularjs - 我如何用.success和.error扩展Angularjs中的$ q promise

javascript - 如何测试我的 HTML 元素的祖先是否具有 CSS 类?

javascript - ng-href 中的 Angularjs 函数

javascript,这段代码(嵌套的 IF 语句)可以更短吗?

javascript - 如何将函数连接到 windows.onclick?

javascript - 缩略图 slider 不起作用

javascript - 根据scroll设置div的位置

javascript - 一些赋值运算符在 AngularJS 表达式中不起作用。为什么不呢?

javascript - 取消下拉菜单中选项更改的事件