MapoMagpie / eh-view-enhance

Manga Viewer + Downloader, Focus on experience and low load on the site. Support: e-hentai.org | exhentai.org | pixiv.net | 18comic.vip | nhentai.net | hitomi.la | rule34.xxx | danbooru.donmai.us | gelbooru.com | twitter.com
MIT License
264 stars 8 forks source link

[Feature] 允许修改键盘快捷键 #32

Closed Pil0tXia closed 6 months ago

Pil0tXia commented 7 months ago

描述

在 nhentai.net 在线阅读时,默认的键位设置如下:

默认的键位设置是右手布局。对于习惯使用左手布局的用户来说,可以在网页上修改键位设置,例如:

为什么不使用已有的 (Shift+)Space

我禁用了黏糊糊鼠标以免干扰。在图片被放大时,Space按键集成了向下滚动与翻页的功能,但是在需要翻页时,往往需要按下多次Space,才能翻到下一页,影响阅读体验。

感谢!

MapoMagpie commented 7 months ago

谢谢建议,我是有自定义键位的计划。 另外space翻页需要按多次,可以设置"滚动翻页时间|Flip Page Time"为0,这样就不会阻止快速翻页行为了。

Pil0tXia commented 7 months ago

可以设置"滚动翻页时间|Flip Page Time"为0,这样就不会阻止快速翻页行为了

按下=将图片放大后,再将滚动翻页时间的值修改后(例如,从默认的200设置为50),Space键将无法翻页。

再按-将图片缩回适应屏幕的最小缩放后,Space键才可以继续翻页。

MapoMagpie commented 7 months ago

f679efba4f5c07e74afab299d501e8911db4fc6d 增加了自定义快捷键的功能,现在可以全左手操作。 这里简单说明下, 删除某个功能下的所有快捷键后会立即恢复为默认的快捷键。 滚动图片相关的快捷键需要保留默认的快捷键,因为默认的快捷键是通过浏览器自身来控制滚动的,自定义的快捷键是通过javascript来滚动,体验有很大差别。

MapoMagpie commented 7 months ago

还有一个, "滚动翻页时间|Flip Page Time" 这个配置如果设置得非常大的话,相当于禁用滚动所附带的的翻页功能(也就是Space的翻页行为)。

Pil0tXia commented 7 months ago

按下=将图片放大后,再将滚动翻页时间的值修改后(例如,从默认的200设置为50),Space键将无法翻页。

请问您觉得这是一个bug吗?可以复现吗

因为默认的快捷键是通过浏览器自身来控制滚动的,自定义的快捷键是通过javascript来滚动,体验有很大差别

图片放大时,使用S键滚动到页面最底部时,会在图片约10%高度处有约半秒的停顿,然后再继续滚动到底部,这可能是为了避免误翻页?但这剩下的10%高度是“蠕动”着滚动的,阅读体验不是很流畅。

用户可以将滚动翻页时间设置为一个较大值,就WASD这四个按键来说,仅使用AD翻页、WS滚动,那么这个停顿也就不再需要了,您可以移除这个停顿~

MapoMagpie commented 7 months ago

按下=将图片放大后,再将滚动翻页时间的值修改后(例如,从默认的200设置为50),Space键将无法翻页。

请问您觉得这是一个bug吗?可以复现吗

这个已经修复了吧,b89e77fd9aa310f62c74cf5f05458507ca0819b2 ,原因是点击了配置面板后,聚焦的元素就不是大图的元素了,而浏览器自带的Space键的滚动行为,只会对聚焦的元素起作用。

MapoMagpie commented 7 months ago

因为默认的快捷键是通过浏览器自身来控制滚动的,自定义的快捷键是通过javascript来滚动,体验有很大差别

图片放大时,使用S键滚动到页面最底部时,会在图片约10%高度处有约半秒的停顿,然后再继续滚动到底部,这可能是为了避免误翻页?但这剩下的10%高度是“蠕动”着滚动的,阅读体验不是很流畅。

这是因为自定义的按键是通过javascript来操作滚动的,和浏览器自带的Space滚动是不同的,在Edge或Chrome浏览器下,javascript的滚动会在按键按下时频繁地被取消又触发,就导致了你说的现象,而在Firefox下没有这个问题。 总之,我尝试做了点修改,但是依旧不如浏览器自带的滚动控制那样丝滑。 f332c98e8e1fe5aef23e2128bf2675891e21b767

Pil0tXia commented 7 months ago

按下=将图片放大后,再将滚动翻页时间的值修改后(例如,从默认的200设置为50),Space键将无法翻页。 这个已经修复了吧,b89e77fd9aa310f62c74cf5f05458507ca0819b2 ,原因是点击了配置面板后,聚焦的元素就不是大图的元素了,而浏览器自带的Space键的滚动行为,只会对聚焦的元素起作用。

我在4.3.2的脚本上观察到的行为,和汇报此问题时的行为一致。图片和背景都不会滚动。Chromium 102.0.5005.167😊

Pil0tXia commented 7 months ago

图片放大时,使用S键滚动到页面最底部时,会在图片约10%高度处有约半秒的停顿,然后再继续滚动到底部,这可能是为了避免误翻页?但这剩下的10%高度是“蠕动”着滚动的,阅读体验不是很流畅。

这是因为自定义的按键是通过javascript来操作滚动的,和浏览器自带的Space滚动是不同的,在Edge或Chrome浏览器下,javascript的滚动会在按键按下时频繁地被取消又触发,就导致了你说的现象,而在Firefox下没有这个问题。 总之,我尝试做了点修改,但是依旧不如浏览器自带的滚动控制那样丝滑。 f332c98

从4.3.1更新到4.3.2后,使用AD翻页后,WS的上下滚动似乎失效了~

MapoMagpie commented 7 months ago

上面的两个问题都没有复现,现在Chrome的最新版本的是121

我在4.3.2的脚本上观察到的行为,和汇报此问题时的行为一致。图片和背景都不会滚动。Chromium 102.0.5005.167😊

这个问题没有复现,现在Chrome的最新版本的是121

MapoMagpie commented 7 months ago

修复了自定义滚动失效的问题。 833f3f4c99a582b50db280f7653bb2774fbd3bfc

Pil0tXia commented 6 months ago

4.3.3的滚动似乎变得流畅了,但翻页之后 滚动功能依然是失效状态~

MapoMagpie commented 6 months ago

滚动失效没复现,只要翻页了,必然不会再锁定自定义按键的滚动 https://github.com/MapoMagpie/eh-view-enhance/blob/df4abd9eafbc81efd2d6820aed12cf5aba26e072/src/ui/event.ts#L291 要不改用space键来翻页吧,那才是真的流畅。自定义按键的滚动终究不是好路子,除非能找到自定义按键可以触发浏览器默认滚动事件的办法。

Pil0tXia commented 6 months ago

滚动失效没复现

复现此问题的键位为:

  1. 进入单页大图浏览模式
  2. 按下=三次以放大图片
  3. 长按S以滚动到图片底部
  4. 按下D翻到下一页
  5. 长按S以滚动到图片底部(此时无法滚动)

除非能找到自定义按键可以触发浏览器默认滚动事件的办法

或许您可以将WASD按键视作方向键?

MapoMagpie commented 6 months ago

你是指:长按S滚动到底部后,没有松开S,通过D翻到下一页后,仍旧被按着的S键没有生效是吗? 如果这这种情况的话,那就是浏览器的行为,你可以随便找个输入框,长按s键,保持按下s键的同时,按其他键,这时s键不会再继续输入内容了,也就是长按的重复行为被中止了。

如果是:长按S滚动到底部后,松开,然后通过D键翻到下一页后,再按S键进行滚动,发现失效。 这种情况我没复现成功。

Pil0tXia commented 6 months ago

长按S滚动到底部后,松开,然后通过D键翻到下一页后,再按S键进行滚动,发现失效

是这种情况,后者。

这种情况我没复现成功。

我试了一下 Chrome 121.0.6167.161,确实没有遇到滚动和翻页的问题。

Chromium 102.0.5005.167

这是 CentBrowser 5.0.1002.354 的内核版本,相比于一众国产浏览器,应该也不算旧了。

您可以根据使用体验和用户群体,再考虑要不要使用更通用的方法~

MapoMagpie commented 6 months ago

我考虑考虑