写点什么

BOM 核心——window 对象之窗口

作者:大熊G
  • 2022 年 6 月 17 日
  • 本文字数:856 字

    阅读完需:约 3 分钟

BOM核心——window对象之窗口

window 是什么

浏览器对象模型 BOM(Browser,Object,Model)是以 window 对象为基础的,这个对象代表了浏览器窗口,页面可视区域,它还被复用为 Es 的全局对象 Global,所有的原生类型的构造函数和函数都从一开始就存在于这个对象之上。

窗口位置

window 的位置可以通过不同的属性和方法来定义,我们可以使用 moveTo(),moveBy()方法移动窗口,这俩个方法都接收俩个参数。

moveTo 是接收要移动位置的坐标 x 和 y。

moveBy 是接收当前位置在这俩个方向上移动的像素值。

窗口大小

所有浏览器都支持四个窗口大小的属性。

outerWidth,outerHeight 是浏览器窗口自身的大小,就是我们当前浏览器的大小。

innerWidth,innerHeight 是浏览器窗口中页面视口的大小,不包含我们的调试工具栏还有浏览器边框。

这个还挺实用的,我们可以通过媒体查询来设置响应式,但有时候我们列表需要通过页面视口的宽度来判断是不是切换俩个还是切换四个,然后实现新闻列表的切换,我们在 js 肯定是要判断浏览器窗口大小的。这个我在实际项目中就遇到过,非常有印象。

再提一点我们还可以使用 resizeTo(),resizeBy()来调整窗口大小,但是这个用的不是很多,一般我们不会去主动调这个的,毕竟显示给用户的,如果我们设置个定时器让窗口自己变,那用户可能会砸电脑。

视口位置

我们浏览网页的时候肯定不可能一下子全部显示完,都需要用滚轮来往下翻动。我们可以使用 scroll(),scrollTo(),scrollBy()方法滚动页面,这三个方法都接收俩个参数,x 和 y。scroll 和 scrollTo 表示的是要滚动的坐标,scrollBy 表示滚动的距离。还是写一下把。

    // 相对于当前视口向下滚动 80 像素    window.scrollBy(0, 80);    // 相对于当前视口向右滚动 40 像素    window.scrollBy(40, 0);    // 滚动到页面左上角    window.scrollTo(0, 0);    // 滚动到距离屏幕左边及顶边各 80 像素的位置    window.scrollTo(80, 80);
复制代码

这个也挺有用的,尤其手机端,我们需要网页头部的一直显示在页面顶部,一到网页顶部头部背景颜色是透明的,滚动后背景颜色变成白色,就可以通过 js 来判断,让它移动到一定位置的时候背景颜色改变。

发布于: 刚刚阅读数: 3
用户头像

大熊G

关注

每天都在写bug的硬核男人 2022.06.02 加入

前端

评论

发布
暂无评论
BOM核心——window对象之窗口_JavaScript_大熊G_InfoQ写作社区