javascript - 仅在桌面上运行 window.addEventListener 而不是在移动或平板设备上运行
问题描述
我正在设置一个 htm5 画布作为覆盖整个屏幕的背景图形。目前 Canvas 图形在每次窗口改变大小时都会刷新,因此即使用户改变窗口尺寸,图形也可以在窗口边缘反弹。这适用于桌面,但不适用于移动/平板电脑,因为移动/平板电脑上的浏览器导航栏会导致画布在每次浏览器导航栏隐藏和出现时调整大小。我正在尝试找到一种方法使“window.addEventListener”仅在桌面上运行并在移动/平板电脑上被忽略。
window.addEventListener("resize", sizeCanvas);
sizeCanvas();
function sizeCanvas(){
canvas.width = window.innerWidth;
canvas.height = window.innerHeight - 55;
if(exampleRunning){
reset();
}
}
var reset = function(){
stars = [];
FPS = 60;
if (canvas.width < 600) x = 16;
if (canvas.width > 600) x = 22;
if (canvas.width > 1200) x = 34;
for (var i = 0; i < x; i++) {
stars.push({
x: Math.random() * canvas.width,
y: Math.random() * canvas.height,
radius: Math.random() * 4 + 1,
vx: Math.floor(Math.random() * 50) - 25,
vy: Math.floor(Math.random() * 50) - 25,
});
}
}
解决方案
推荐阅读
- angular - 使用 forwardRef 避免导入模块
- c++ - C++17 并行执行策略和 lambda 副本
- google-cloud-firestore - 查询修改后的文档并从 Firestore 中的缓存加载其他文档
- java - 我正在使用 Firebase 推送通知来提醒用户更新应用程序。现在,当用户单击通知时,如何打开 Play 商店?
- pointers - 无法简化多数组中的浮点函数
- python - 使用 Tableau Server Client 将 Tableau Server 上所有站点的列表获取到 pandas 数据框中
- javascript - 如何在自动页面重新加载时在选择中保持值
- ansible - 在 ansible 中执行任务时使用 ansible 事实
- angular - 启用“禁用跨站点跟踪”时无法在 iOS 设备上登录我的站点
- javascript - 用 svelte 绑定 textContent 和覆盖 dom