Greasy Fork is available in English.

Scroll with Mouse Plus

页面随心滚动,无需点击!

目前为 2023-08-22 提交的版本。查看 最新版本

作者
hzhbest
评分
0 0 0
版本
2.1
创建于
2020-06-24
更新于
2023-08-22
许可证
GNU GPLv3
适用于
所有网站

简介

在【Protector one】的脚本【Scroll with the Mouse】的基础上,我作了一系列修改来增强功能从而得到了这个脚本,其功能包括:

  • 进入自由滚动模式后,完全无需点击滚动(原功能);
  • 滚动效果与拖动滚动块一样(改进的算法);
  • 对所有页面有效(改进的兼容性,排除可编辑区域);
  • 鼠标指针可以在一个更宽的“滚动触发区”操控滚动(提高灵活性);
  • 按住Ctrl键可以实现减速滚动;
  • 半透明滚动提示条(可在代码中启/禁用);
  • 自由滚动时鼠标指针在接近页面边缘移动时页面会继续向上或向下滚动;
  • 在“滚动触发区”点击即可停止自由滚动;
  • 增加实现横向滚动的效果。
  • 纵向滚动也可以在左边触发。

使用方法

  1. 将鼠标指针移动到滚动条上(#1,#2,#3,#6),就会进入“自由滚动模式”;
  2. 进入“自由滚动模式”后即可在“滚动触发区”中自由移动鼠标以滚动页面,滚动效果跟拖动滚动块一样(#4);
  3. 滚动提示条会显示在鼠标指针下面,提示你在“自由滚动模式”中,其长/宽度示意“滚动触发区”的范围;
  4. 要停止滚动,只需要将鼠标指针移出“滚动触发区”或点击一下(#5)退出“自由滚动模式”。

须知

  • #1 该脚本只针对页面主体(body)响应,不会对文本输入区域、下拉列表等网页元素产生滚动效果。
  • #2 “滚动条”宽度无需精确,所以我直接在代码中给定这个宽度,你可在代码中对其进行修改。
  • #3 该脚本提供三种进入“自由滚动模式”的方式,请根据自己的使用习惯选择:

    ①(默认)鼠标移动到滚动条区域;

    ②按住Ctrl键同时鼠标移动到滚动条区域(进入后即可松开Ctrl键);

    ③鼠标移动到滚动条区域中间100像素范围内。

  • #4 在“自由滚动模式”中按住 Ctrl 键可以低速滚动,方便细读内容。
  • #5 如果禁用了提示条,若你要点击退出“自由滚动模式”,请注意别误点可点击的对象,以免造成误操作。(推荐使用移出“滚动触发区”的方式退出。)
  • #6 你可以将鼠标移动到【左、右、底】其中一个边缘进入“自由滚动模式”,启用哪个边缘可以在代码中设置(默认启用右和底边缘)。

其他

原始脚本位置:
https://userscripts-mirror.org/scripts/show/63593

一个全方向(慢)滚动脚本:
(同我的脚本无法共用)
https://userscripts-mirror.org/scripts/show/47788

更新记录

20091229 v1.04 增加功能:点击退出“自由滚动模式”。
20091229 v1.05 不再提早生成提示条,避免在 HTML 编辑器中留下不必要的痕迹。
20091230 v1.10 增加功能:进入“自由滚动模式”后鼠标指针在接近页面顶部或底部移动时页面会继续向上或向下滚动;可自定义变量都分离出来放在代码开头,便于编辑。
20091230 v1.11 放弃原脚本的方法,用 innerHeight 判断页面显示高度,使得在短页面脚本不会被激活;修复一个小错误。
20091230 v1.12 放弃原脚本的方法,用相似于我用来提高兼容性的方法判断页面显示宽度,使得在有额外空隙的页面脚本能正确判断“滚动条位置”;放弃在提示条上显示文本,使用鼠标效果取而代之。
20091230 v1.13 不对可编辑的页面起作用,例如“所见即所得”的网页编辑器。
20091231 v1.14 增加调整提示条粗细的自定义项;更新算法使长页面的滚动准确跟上鼠标移动。
20100105 v1.15 算法更新:在代码中指定位置填入正确的滚动条宽度的话,将可以做到与拖动滚动块完全无异。
20100112 v1.16 增加进入“自由滚动区”的条件(可选);增加(进入后)按住 Ctrl 键半速滚动。
20200624 v1.17 增加对新版油猴的兼容设置;增加排除可编辑页面的语句。
20220209 v1.18 修复在新版Firefox浮动滚动条上失效的问题。
20230216 v2.0 增加横向滚动响应,操作和纵向完全相同;修复滚动速度因子算法;修改按住Ctrl键时的滚动速度为固定速度。
20230822 v2.1 增加左边缘滚动功能和设置选项。

一些说明

本来这脚本只是我放在Userscript.org上,一直更新到十年前的1.16版,然后就忙于工作,基本上很少维护自己的脚本,也很少关注Firefox相关的信息。一次偶然的机会,使用了一个网友的“美化增强版”Firefox新版本,在里面发现了两个我的(严格来说是改进过的)脚本,Ewh和这个。我自己也很久没用这个脚本,于是带着怀念青春的想法用了一下,并且鬼使神差(或者说习惯使然)地打开了其代码,发现里面的作者赫然写着别人的名字,版本号也去到1.50,但是凭着我当年一直维护这脚本的记忆我分明看出了这脚本绝大部分代码都是我的!我拿这脚本的名称在搜索引擎上搜,因为Userscript.org已经关闭了,镜像站Userscript-mirror.org在搜索引擎上排名也不高,排在前面的就是这个同名脚本的作者发布页。通过深度搜索,我没发现同名脚本的其他版本,认定该作者是唯一发布同名脚本的作者。作者总共有三个存放点,一个是本站,一个是github,还有一个(略);在我在本站上发信要求对方补充脚本说明和原作者声明之后,作者选择第一时间删除了前两个存放点,一干二净,但第三个存放点至2020-6-24仍然能下载。我的诉求依然如故,希望他发布的脚本能在发布页面补充脚本说明和原作者声明而已。
放在本站,算是为大家提供“正版”的脚本。
另外,那个同名脚本加了个为手机版Firefox添加返回到页顶的按钮。我认为这跟鼠标滚动的功能并不相关,所以我没将这些代码添加进来。

需要这个功能的,可以使用同站的一个脚本:
For those who need a button to scroll to the top / the bottom of a webpage, there is another script for you:
https://greasyfork.org/zh-CN/scripts/370556-%E4%B8%80%E4%B8%AA%E8%BF%94%E5%9B%9E%E9%A1%B6%E9%83%A8%E5%92%8C%E5%88%B0%E8%BE%BE%E5%BA%95%E9%83%A8%E7%9A%84%E6%8C%89%E9%92%AE