该类包含以下公共方法:
- init(metaData): 初始化当前窗口,并添加到窗口列表中 。
- getWindows(): 获取所有窗口的数组 。
- getThisWindowData(): 获取当前窗口的元数据 。
- getThisWindowID(): 获取当前窗口的标识符 。
- setWinShapeChangeCallback(callback): 设置窗口形状变化时的回调函数 。
- setWinChangeCallback(callback): 设置窗口列表变化时的回调函数 。
- update(): 更新当前窗口的形状信息,并将更新后的窗口列表存储到本地存储中 。
可以看到,作者使用 window.screenLeft、window.screenTop、window.innerWidth和 window.innerHeight 这些属性来计算立方体的位置和大小信息,通过 localstorage 来在不同窗口之间共享不同的位置信息 。
当新增一个窗口时,就将其保存到 localstorage 中,每个窗口使用唯一的 id 进行标记,并储存立方体的位置和大小信息 。不同浏览器窗口都可以获得所有的窗口信息,以确保实时更新 。
文章插图
当窗口的位置,即screenTop、screenLeft 发生变化时,就更新立方体 。
这里就不再详细解释了,可以查看完整源码:https://github.com/bgstaal/multipleWindow3dScene
【全网疯传的前端量子纠缠效果,源码来了!】
推荐阅读
- 免费获取GPT-4的五种工具
- HashMap:Java中的高效数据结构
- 上数据中台的第一步:理清数据中台5个建设步骤
- Nodejs 的 CommonJS 规范实现原理
- 架构模式解析,探索常见架构模式的优势与适用性
- AI绘画揭示未知的特异功能
- 电脑选择单条内存或两条内存组建双通道内存的区别
- EPON和GPON:无源光纤网络的区别大揭秘
- 无监督学习中的聚类算法综述
- 关于 Redis ,这里有你不知道的知识