首页 > 其他分享 >前端JS必用工具【js-tool-big-box】学习,检测浏览器当前切换状态

前端JS必用工具【js-tool-big-box】学习,检测浏览器当前切换状态

时间:2024-07-20 16:25:30浏览次数:10  
标签:box 浏览器 必用 big tool js 切换

我们时常会遇到类似这种需求,比如说第一个浏览器页签,有一个 setInterval 倒计时的场景,然后我们切换浏览器页签了,去做其他事情了,等再切换回来的时候呢,setInterval 就开始疯狂的执行。又比如呢,我们浏览器里播放着一个视频,然后希望浏览器切换了页签,或者把浏览器最小化了之后呢,把视频停止掉。等浏览器切换回来的时候,视频再继续播放。

这就需要检测浏览器页签是否被切换了,或者浏览器是否被最小化了。下面我们来看一下,js-tool-big-box 这个工具库中,如何使用这一方法。

1 安装js-tool-big-box工具库

执行安装命令

npm install js-tool-big-box

2 引入 browserBox 对象

检测浏览器切换状态的公共方法在 browserBox 对象下面,引入一下:

import { browserBox } from 'js-tool-big-box';

3 方法调用

如果做一个暂停视频播放和继续播放的效果不太合适,我们做一个暂停setInterval和继续setInterval的效果来测试一下功能吧。

3.1 在Vue项目中添加一个累加定时器

<script>
import { browserBox } from 'js-tool-big-box';

export default {
  name: 'PageIndex',
  data () {
    return {
      timer: null,
      number: 0,
    }
  },
  created() {
    
  },
  mounted() {
    this.startTimer();
  },
  methods: {
    startTimer() {
      this.timer = setInterval(() => {
        this.number += 1;
        console.log('计时器数值:', this.number);
      }, 990)
    }
  }
}
</script>

如图,定时累加器已经开始工作了。

3.2 浏览器最小化

我们现在要做的是,添加代码,检测浏览器最小化或者浏览器标签切换后,将累加器停止掉,当切换回来的时候,再让累加器继续执行。

<script>
import { browserBox } from 'js-tool-big-box';

export default {
  name: 'Page404',
  data () {
    return {
      timer: null,
      number: 0,
    }
  },
  created() {
    
  },
  mounted() {
    this.startTimer();
    // 判断浏览器是否切出或者最小化
    browserBox.getPageVisibility((isVisible) => {
      if (isVisible) {
        this.startTimer();
      } else {
        window.clearInterval(this.timer);
        this.timer = null;
      }
    });
  },
  methods: {
    startTimer() {
      this.timer = setInterval(() => {
        this.number += 1;
        console.log('计时器数值:', this.number);
      }, 990)
    }
  }
}
</script>

3.3 方法总结

方法名返回值入参

getPageVisibility

返回值是回调函数中的一个变量 ,如以上代码示例,为

isVisible

如果isVisible为true,表示浏览器已切换回来了;

如果isVisible为false,表示浏览器被最小化或者切换走了。

一个回调函数

标签:box,浏览器,必用,big,tool,js,切换
From: https://blog.csdn.net/xingyu_qie/article/details/140464662

相关文章

  • SciTech-BigDataAIML-Algorithm: Github的Hello 算法项目
    先记录一下,好不好再读:https://github.com/krahets/hello-algo关于本书本项目旨在打造一本开源免费、新手友好的数据结构与算法入门教程。全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。源代码可一键运行,帮助读者在练习中提升编程技能......
  • C#.09 PictureBox图片控件
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;using_1.Properties;namespace_1{publicpartialclassForm1:F......
  • WPF ListBox's ItemsSource depend on another's ListBoxItem and fully implemented
    //xaml<Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><ListBoxGrid.Column="0"ItemsSource=&......
  • uni-app的checkbox组件有些情况下视图层不更新解决方案
    应用场景问题:在使用uniapp的复选框组件checkbox实现列表的全选跟不全选功能时发现,列表的checkbox视图层在某些情况下不生效    解决方法 解决方案1:利用  this.$set改变数据,即 this.$set(item,'checked',false),这个时候视图层跟数据都一起更新了,但是在上面那种......
  • 猫头虎分享已解决Bug ||Asset validation failed (90296) App sandbox not enabled. T
    ......
  • flexbox布局使用场景
    flexbox又称弹性布局,目标是提供一个更有效的布局,对齐方式主要思想:父元素能够调整子元素的宽度,高度,排列方式,从而更好的适用布局空间1、水平垂直居中对齐justify-content主轴对齐方式flex-start(默认值):左对齐flex-end:右对齐center:居中space-between:两端对齐,项目之间的间隔......
  • kimi写代码:处理msgrcv返回E2BIG
    #include<stdio.h>#include<sys/ipc.h>#include<sys/msg.h>#include<string.h>#include<errno.h>typedefstruct{longmtype;charmtext[1024];//假设消息文本的最大长度为1024字节}message;intmain(){key_tkey=ftok(&......
  • BigDecimal的精度与刻度
    BigDecimal是Java中用于高精度算术运算的类。当您需要精确地处理非常大或非常小的数字时,例如在金融计算中,它特别有用。由于众所周知得原因,Double这种类型在某些情况下会出现丢失精度的问题,所以在需要对较为敏感的数据(比如与金额有关的)进行运算时,我们都会用BigDecimal。但是,用Bi......
  • Windows图形界面(GUI)-DLG-C/C++ - 列表框(ListBox)
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​​​​链接点击跳转博客主页列表框(ListBox)控件类型单选列表框(Single-selectionListBox):用户一次只能选择一个列表项。它通常用于当选择范围被限定到一个单一的选项时。多选列表框(Multi-selectionListBox):用户可以同......
  • CSS 不用JavaScript实现动画 box-shadow 渐变实现内切角
    阴影实现的关键点在于使用伪元素绝对定位在容器的一角,元素本身透明,阴影扩散开形成内切圆角效果阴影实现缺点,单个标签最多只能是2个内切圆角径向渐变实现内切圆角可以是4边HTML:<divclass="shadow">使用阴影的扩散半径实现内切圆角</div><divclass="shadow2">阴影实现缺点......