![滚动时行进的距离与屏幕分辨率无关吗?](https://linux22.com/image/1408154/%E6%BB%9A%E5%8A%A8%E6%97%B6%E8%A1%8C%E8%BF%9B%E7%9A%84%E8%B7%9D%E7%A6%BB%E4%B8%8E%E5%B1%8F%E5%B9%95%E5%88%86%E8%BE%A8%E7%8E%87%E6%97%A0%E5%85%B3%E5%90%97%EF%BC%9F.png)
假设您按下箭头键进行滚动或使用鼠标滚轮。
如果您只按一次箭头键或分别用鼠标滚轮滚动一次“刻度”,则滚动的距离(以 px 为单位)会根据我当前所用机器的分辨率而有所不同吗?还是滚动距离是固定距离?
答案1
...并且,您通常可以在鼠标设置中指定每次鼠标滚轮“点击”要滚动多少“行”。根据驱动程序的不同,它可能位于同一个对话框中,让您设置光标相对于您移动鼠标的距离(鼠标光标速度)移动的距离。
其中许多功能也可以在鼠标驱动程序和各种程序(如网络浏览器)中定制。
在编写程序时,在许多语言中,您都可以处理鼠标移动和滚轮移动以及程序中上下箭头键等的操作。因此,这不是固定的。这在很大程度上取决于编写您正在运行的程序的程序员的想法。
但说到您可能要问的其他问题:程序通常使用像素或其他与屏幕相关的相对距离单位。从某种意义上说,程序可能关心也可能不关心您的屏幕分辨率,并且如果不费很大力气,可能根本不知道显示器的物理尺寸。
请记住,屏幕分辨率不是指每英寸像素数。它是指垂直或水平方向上可用的像素总数。
因此,我可以拥有一台分辨率为 1920 X 1080、对角线长度为 22 英寸的显示器,也可以拥有另一台分辨率相同(1920 X 1080)但对角线长度为 52 英寸的显示器。两台显示器的分辨率相同。但小显示器的像素“间距”更细。像素之间的距离更近,尺寸更小。
因此,使用大显示器时,每次鼠标滚动都会使光标(或其他东西)移动比使用小显示器时大得多的实际物理距离。但效果是一样的,因为两个显示器都显示相同的数据。只是在小显示器上显示得更小。大显示器可以作为 15 英尺外的好电视。小显示器放在离您只有几英尺远的地方(如在桌面上)时会给出相同的“外观”。
分辨率相同。每次按键或滚轮点击的感知效果相同。但物理尺寸和舒适观看距离不同。
在处理显示器或相机分辨率时,这常常使人感到困惑。总像素(分辨率)并不等于相同的物理尺寸,因为我们还需要知道显示器或打印“映射到”每英寸多少个像素。
将 200 万像素图像映射到 3.5 英寸 X 5 英寸的印刷品上,会显得非常平滑,而且质量很高。将同样的 200 万像素(分辨率)图像映射到海报大小的印刷品上,从近处看,您会看到单个像素呈小块状。因此,它看起来不平滑,质量也不高。然而,这两幅图像具有相同的分辨率并承载相同的信息。如果您从海报上退后一步,从合理的观看距离观看它,它看起来会再次平滑且质量良好。
显示器也是一样。如果你有一台 52 英寸电视,像素间距(像素之间的间隔)与我们的 1920 X 1080 22 英寸显示器相同,那么它的分辨率将大约是 5.6 倍(因为它的表面积是 5.6 倍)。
我们的 1920 X 1080 显示器或电视大约有 200 万像素。无论它有多大或多小,它仍然是 200 万像素。这就是普通 1080p 高清电视的分辨率。
但如果我们决定要相同数量的像素每英寸如果我们 52 英寸电视的显示面积与 22 英寸电脑显示器的显示面积相同,那么像素数量将是原来的 5.6 倍,因此它们可以以相同的像素间距(像素的间距/大小)覆盖更大的表面积。
这将会是一块真正令人惊叹的显示屏。它的分辨率将达到 4,538 X 2,553 像素!那将是一块 11.6 兆像素的显示屏。真是太棒了!
所以关键在于尺寸和分辨率之间没有物理关系。
分辨率是我们将某物划分为的离散步骤数。但如果不知道某物的整体大小,我们就无法说出这些步骤的大小。
如果我们知道分辨率和物理尺寸,那么我们就可以计算每一步的物理距离(在本例中是显示器上的像素)。然后,如果我们知道操作系统和运行的程序将如何处理鼠标滚轮点击或箭头键按下,我们就可以计算出某个物体在屏幕上滚动或移动的物理距离(其尺寸和分辨率都是已知的)。
这可能已经够无聊了。但希望它对真正读完它的人有用。:)
答案2
事实上,情况要复杂得多。它不仅取决于浏览器,而且在某些浏览器上可自定义,滚动偏移还取决于被滚动的元素。有很多种可能。例如,某些元素会按一行文本、按某个块大小或按像素滚动。