我正在制作照片轮播。目的是在一行上显示 x 张图片,其中 x 取决于视口(viewport)大小。我所说的视口(viewport)是指浏览器窗口内没有滚动条的区域。照片的大小调整为宽度 200 如果视口(viewport)宽度为 2000,我可以获得 10 张照片 (200*10=2000)(我保持算法简单)
我的屏幕分辨率是 3840x2160。我扩大了浏览器以占据整个屏幕。当我使用: $(window).width() 时,我得到 1707,而 screen.width 则得到 1707。绝对不是 3840。
当我调整浏览器大小,使其占据大约一半的屏幕时,我得到: $(window).width() 为 929,screen.width 为 1706。
对于我使用 Edge、IE11、FF 和 Chrome 46 的浏览器,我遇到了大致相同的问题。
我的桌面显示器也是 4k,据我所知,它由两个 1920x1080 面板组成,总共 3840x2160。如果这是真的,在我的笔记本电脑 4k 显示器上,如果我占据整个屏幕,我应该使用 screen.width 获得 1920 的宽度,但我没有。
我需要考虑到大多数浏览此网站的人都没有 4k 显示器。
关于如何获取 4k 显示器上的屏幕宽度有什么想法吗?
最佳答案
也许您可以利用 window.devicePixelRatio
属性。
它应该为您提供 1
、2
等。将 window.innerWidth
和 window.innerHeight
乘以这个值。
var width = window.innerWidth * window.devicePixelRatio;
var height = window.innerHeight * window.devicePixelRatio;
在配备 4K UHD 屏幕 (3840 * 2160) 显示分辨率的戴尔笔记本电脑上,Windows 显示设置配置为 250% 比例和布局,我得到以下结果:
MDN 文档:https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio
关于javascript - 使用JS在4k显示器上查找屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161461/