【问题标题】:Decrease number of lines per wheel notch of mouse on website减少网站上每个鼠标轮槽的行数
【发布时间】:2013-08-08 11:19:20
【问题描述】:

我知道我们可以在 Windows 中通过控制面板-->鼠标-->滚轮-->减少/增加行数每个槽轮。但是,如果我需要对我的网站做这件事怎么办。我想知道这种可能性。我们可以更改鼠标滚轮每个槽口 website 中滚动的行数,这样如果一个人打开我的网站,即使他的窗口设置保存为每个槽口 3 行,他也会体验到 1我的网站上的每一个档次..如果有可能比怎么做?提前致谢..!!! ♥

编辑:问题的基线是平滑我的网站“不通过浏览器或操作系统中的自定义设置”的滚动,而是直接通过一些编码和东西从服务器端滚动。..

【问题讨论】:

  • 我偶然发现了这个问题,并想说我同意@Renat Gilmanov 的观点,即你不应该这样做。乱搞滚动工作方式的网站让用户非常恼火。如果我访问一个网站并发现它会干扰滚动以使单击我的滚轮仅移动 1 行而不是 3 行,我会立即关闭该选项卡。这是可怕的用户体验。

标签: scroll mouse webpage mousewheel


【解决方案1】:

答案是:你不应该那样做。

您实际上要求的是一种无需任何许可即可由任何站点更改高度敏感的系统设置的方法。这似乎很荒谬。简单地想象每个网站都有它自己的“每个槽轮的行数”设置。听起来对任何人来说都是地狱。

顺便说一句,从可用性的角度来看,这确实是一种糟糕的方法。无论如何,正如您已经提到的,这可以在系统级别或浏览器级别完成。例如:

How can i change the number of jumped lines when scrolling?

关于您的问题的第一部分,关于使用 老鼠。默认情况下,Firefox 将使用系统设置来决定如何 使用鼠标滚轮时要滚动很多行,但您可以更改它 通过修改几个隐藏的首选项。

  • 在地址栏中输入 about:config 并回车
  • 接受出现的警告消息,将出现首选项列表
  • 在过滤器框中输入 numlines
  • 双击首选项 mousewheel.withnokey.sysnumlines 将其值更改为 false
  • 双击首选项 mousewheel.withnokey.numlines 和 将其更改为您要滚动的行数

任何可以从外部静默更改系统设置的浏览器都将被删除。

你实际上可以做什么

当您且只有您负责渲染时,您可以控制所有鼠标特定参数。这意味着使用 HTML Canvas,您可以做任何您想做的事情。

一些有用的例子:

【讨论】:

  • 我同意你对此的看法。但问题的底线是平滑我的网站“不通过浏览器或操作系统中的自定义设置”的滚动,而是直接从服务器端滚动。
  • 我明白了,但是您如何代表用户做出决定?滚动流畅度取决于很多参数,所以让我们想象一下用户有平滑稳定的滚动。你能检测到吗?答案是不。如果您真的想拥有该控件 - 使用 HTMLCanvas。
【解决方案2】:

您可以捕获 OnMouseWheel 事件,手动滚动窗口并防止默认处理:

<html>

<head>

<script>

var MOUSE_WHEEL_GAIN = 1;

function OnMouseWheel() {

  window.scrollTo(0, document.body.scrollTop - event.wheelDelta/120 * MOUSE_WHEEL_GAIN);

  var e = window.event;
  e.returnValue = false;
  e.cancelBubble = true;
  return false;

}

</script>

<head>

<body ONMOUSEWHEEL="OnMouseWheel()">

<script>
for (i=0;i<20;i++) document.write("<p>" + i + " Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>");
</script>

</body>

</html>

【讨论】:

  • 奖励:将减号更改为加号以获得令人敬畏的 Mac OS X 自然滚动效果。
  • 无法在 IE 上运行。只是让你知道,因为我已经为此合并了基于浏览器的编码。所以一切都很好。和平..☺☻♥
  • 我检查了 IE 6 和 9
【解决方案3】:

您可以捕捉 OnMouseWheel 事件并重新计算整个页面或某些元素的布局:

<html>

<head>

<script>

var count = 1;

function OnMouseWheel() {

  count += event.wheelDelta/120;
  img1.style.top = count * 5;
  img2.style.top = count * 10;
  img3.style.top = count * 20;

}

</script>

<head>

<body ONMOUSEWHEEL="OnMouseWheel()">

<img ID="img1" style="position:relative" src="http://upload.wikimedia.org/wikipedia/commons/a/aa/3-Tastenmaus_Microsoft.jpg" width="400" height="350">
<img ID="img2" style="position:relative" src="http://upload.wikimedia.org/wikipedia/commons/a/aa/3-Tastenmaus_Microsoft.jpg" width="400" height="350">
<img ID="img3" style="position:relative" src="http://upload.wikimedia.org/wikipedia/commons/a/aa/3-Tastenmaus_Microsoft.jpg" width="400" height="350">

</body>

</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多