hymbz / ComicReadScript

为漫画站增加双页阅读模式及优化使用体验。
https://comic-read.pages.dev/
GNU Affero General Public License v3.0
554 stars 26 forks source link

卷轴模式下自动适应宽度的bug #147

Closed tamendeshijie closed 5 months ago

tamendeshijie commented 5 months ago

在提交 issue 之前,请先确认

使用的油猴扩展是?

篡改猴

使用的浏览器是?

谷歌

问题会在哪个网页上出现?

https://exhentai.org/g/2819626/349ebff282/

问题是?

先关闭自动进入阅读模式,然后打开卷轴模式下的宽度自动匹配功能后,如果进入预览页面,例如上面那个网页,用触摸板放大页面之后,再按v进入阅读模式后,宽度是过大的,图片放大且不能缩小。 感谢大佬嘿嘿,又是我

tamendeshijie commented 5 months ago

还有一个bug,同样是卷轴模式下,使用触摸板向下滑动时,会弹到很下面的未加载的图片去

tamendeshijie commented 5 months ago

更正,不仅触摸板,滑轮也会,https://exhentai.org/g/2819494/95e7d3b384/,例如这个,大佬你打开卷轴模式往下翻多一点你就知道了,和早先反应的另一个问题很像

tamendeshijie commented 5 months ago

关于问题2 关闭卷轴图片适合宽度,之后就没有这个bug了

hymbz commented 5 months ago

你是用的什么设备?

tamendeshijie commented 5 months ago

你是用的什么设备?

电脑,笔记本

hymbz commented 5 months ago

操作系统是?

tamendeshijie commented 5 months ago

操作系统是?

win 10

hymbz commented 5 months ago

这就奇了怪了。同样的设备,这俩个问题我都没法复现,但在手机平板上就可以。

你有装什么相关插件吗?换个浏览器还会这样吗?

tamendeshijie commented 5 months ago

这就奇了怪了。同样的设备,这俩个问题我都没法复现,但在手机平板上就可以。

你有装什么相关插件吗?换个浏览器还会这样吗?

在漫画页面运行的插件只有这个,谷歌浏览器右上角显示的就是这一个插件,就是当漫画页面数量过多会出现这种

tamendeshijie commented 5 months ago

而且如果硬调的话,还会出现类似频闪的画面闪烁(一直不停的超级快上下翻页)

tamendeshijie commented 5 months ago

我换个edge浏览器试试

tamendeshijie commented 5 months ago

这就奇了怪了。同样的设备,这俩个问题我都没法复现,但在手机平板上就可以。

你有装什么相关插件吗?换个浏览器还会这样吗?

大佬,我大概明白了,关于第二个问题,你尝试开启宽度适应之后,用触摸板放大页面试试

tamendeshijie commented 5 months ago

这就奇了怪了。同样的设备,这俩个问题我都没法复现,但在手机平板上就可以。

你有装什么相关插件吗?换个浏览器还会这样吗?

然后第一个问题,edge浏览器同样有,就是我进入页面后先不动,然后用触摸板放大,然后按v进入卷轴模式,这时候卷轴模式画面是异常的

hymbz commented 5 months ago

然后第一个问题,edge浏览器同样有,就是我进入页面后先不动,然后用触摸板放大,然后按v进入卷轴模式,这时候卷轴模式画面是异常的

可以点出左侧工具栏吗?截图我看下

tamendeshijie commented 5 months ago

我试试

tamendeshijie commented 5 months ago

先打开一个页面 ff6ff57babf96e9cc248adc12126787 再用触摸板放大 a68aae72e681b0ba51b197d24ed27ec 然后按v(此时是自动放大开启,且为卷轴模式) 7ea487eeb110a26fb279f8c135f6660

tamendeshijie commented 5 months ago

然后第一个问题,edge浏览器同样有,就是我进入页面后先不动,然后用触摸板放大,然后按v进入卷轴模式,这时候卷轴模式画面是异常的

可以点出左侧工具栏吗?截图我看下

按不出来工具栏,工具栏没有居中,他应该和页面一起放大到下面去了

tamendeshijie commented 5 months ago

然后第一个问题,edge浏览器同样有,就是我进入页面后先不动,然后用触摸板放大,然后按v进入卷轴模式,这时候卷轴模式画面是异常的

可以点出左侧工具栏吗?截图我看下 349076c31d2691f38d2b49977057f09 关闭之后可以

hymbz commented 5 months ago

确认一下,你这个放大不是修改的页面缩放百分比对吧。当前的页面缩放百分比可以通过点开地址栏右边那个放大镜图标看到。如果有修改页面缩放的百分比,放大镜图标那应该会有提示框弹出。

tamendeshijie commented 5 months ago

确认一下,你这个放大不是修改的页面缩放百分比对吧。当前的页面缩放百分比可以通过点开地址栏右边那个放大镜图标看到。 1d052dfb281aa436ded37ce771fc1c5 找到工具栏了,同时页面放大比例是50%

hymbz commented 5 months ago

放大比例在放大前后有变化吗?

tamendeshijie commented 5 months ago

放大比例在放大前后有变化吗?

不改变

tamendeshijie commented 5 months ago

放大比例在放大前后有变化吗?

用触摸板放大前后,这个缩放比没有变化

hymbz commented 5 months ago

那我懂了。

浏览器放大页面有俩种,一种是通过修改页面缩放百分比,另一种才是真·缩放,不会改变页面元素布局,放大后也能随意拖拽移动。一般用滚轮和触摸板都只能触发前者,只有在手机上双指捏合才能触发后者(至少我手上的笔记本是这样的

你的触摸板没有将双指捏合手势转换成 Ctrl + 滚轮,而是如实发送了触摸事件,所以触发的是真缩放。

不过很遗憾的是这个 bug 无法解决。因为脚本的阅读模式需要实现自己的缩放,所以在进入阅读模式后就会禁用双指捏合手势,导致无法再用手势将网页缩放回去。而目前我既没办法判断当前网页是否被缩放了,也没办法恢复网页的缩放,所以对这个问题我也无能为力😥,只能注意在进入阅读模式前不要缩放网页了。

tamendeshijie commented 5 months ago

那我懂了。

浏览器放大页面有俩种,一种是通过修改页面缩放百分比,另一种才是真·缩放,不会改变页面元素布局,放大后也能随意拖拽移动。一般用滚轮和触摸板都只能触发前者,只有在手机上双指捏合才能触发后者(至少我手上的笔记本是这样的

你的触摸板没有将双指捏合手势转换成 Ctrl + 滚轮,而是如实发送了触摸事件,所以触发的是真缩放。

不过很遗憾的是这个 bug 无法解决。因为脚本的阅读模式需要实现自己的缩放,所以在进入阅读模式后就会禁用双指捏合手势,导致无法再用手势将网页缩放回去。而目前我既没办法判断当前网页是否被缩放了,也没办法恢复网页的缩放,所以对这个问题我也无能为力😥,只能注意在进入阅读模式前不要缩放网页了。

明白了,感谢大佬,不过大佬麻烦修一下那个,自动调整宽度后,再进行放大操作会导致页面,胡乱翻动的bug呗,那个比较致命

hymbz commented 5 months ago

另外再问下,关于问题2,触发问题时用的鼠标滚轮是无极滚轮吗?还是有段落的常见滚轮?

tamendeshijie commented 5 months ago

另外再问下,关于问题2,触发问题时用的鼠标滚轮是无极滚轮吗?还是有段落的常见滚轮?

段落的,我用的罗技g502,就是翻动速度过快,进入到未加载的页面的时候就会触发

tamendeshijie commented 5 months ago

另外再问下,关于问题2,触发问题时用的鼠标滚轮是无极滚轮吗?还是有段落的常见滚轮?

还有就是触摸板两个手指一个向上一个向下,进行放大操作的时候,也会触发

hymbz commented 5 months ago

每次滚动进未加载图片就必定会触发吗?

tamendeshijie commented 5 months ago

每次滚动进未加载图片就必定会触发吗?

我再试试,找一个必定触发的

tamendeshijie commented 5 months ago

每次滚动进未加载图片就必定会触发吗?

是的,起码我使用触摸板手势向下滑的时候必定会出现

hymbz commented 5 months ago

我这边只有手机能小概率复现。。

你试下把脚本 2435 行到 2438 行:

const scrollTo = (top, smooth = false) => refs.mangaBox.scrollTo({
  top,
  behavior: smooth ? 'smooth' : 'instant'
});

替换成:

const scrollTo = (top, smooth = false) => {};
tamendeshijie commented 5 months ago

好嘞,我去试试

tamendeshijie commented 5 months ago

我这边只有手机能小概率复现。。

你试下把脚本 2435 行到 2438 行:

const scrollTo = (top, smooth = false) => refs.mangaBox.scrollTo({
  top,
  behavior: smooth ? 'smooth' : 'instant'
});

替换成:

const scrollTo = (top, smooth = false) => {};

仍然会,就是会骤然越到很下面的地方,然后上不去

tamendeshijie commented 5 months ago

我这边只有手机能小概率复现。。

你试下把脚本 2435 行到 2438 行:

const scrollTo = (top, smooth = false) => refs.mangaBox.scrollTo({
  top,
  behavior: smooth ? 'smooth' : 'instant'
});

替换成:

const scrollTo = (top, smooth = false) => {};

我有点感觉,不知道对不对,关闭这个模式之后,打开卷轴模式,如果网速慢,未加载的部分,他的尺寸 仍然是加载出来之后的尺寸,虽然是一个灰白色的图片,但尺寸和加载之后的相同,但是如果开启了之后,未加载部分是扁的,等加载之后才会变为图片的尺寸

hymbz commented 5 months ago

图片尺寸相关的代码确实有 bug,你把 设置 - 显示 - 卷轴图片缩放 调为 100% 后再试试

tamendeshijie commented 5 months ago

图片尺寸相关的代码确实有 bug,你把 设置 - 显示 - 卷轴图片缩放 调为 100% 后再试试

大佬我去试试

tamendeshijie commented 5 months ago

图片尺寸相关的代码确实有 bug,你把 设置 - 显示 - 卷轴图片缩放 调为 100% 后再试试 正常了!

tamendeshijie commented 5 months ago

图片尺寸相关的代码确实有 bug,你把 设置 - 显示 - 卷轴图片缩放 调为 100% 后再试试

我稍微多验证了几次,调整之后就正常了,好奇怪

hymbz commented 5 months ago

那破案了,是因为我在计算图片尺寸时,忘了在开启适合宽度缩放后忽略卷轴图片缩放导致的

tamendeshijie commented 5 months ago

那破案了,是因为我在计算图片尺寸时,忘了在开启适合宽度缩放后忽略卷轴图片缩放导致的

好嘞好嘞,结案喽

hymbz commented 5 months ago

然后因为我这边一直没有调整过图片缩放所以才一直没法复现,手机能偶尔复现应该是不小心用双指手势触发了。不过奇怪的是我设备都不会出现弹到很下面位置的情况,不过总之没事了就好,等会就更新改掉这个 bug。

tamendeshijie commented 5 months ago

然后因为我这边一直没有调整过图片缩放所以才一直没法复现,手机能偶尔复现应该是不小心用双指手势触发了。不过奇怪的是我设备都不会出现弹到很下面位置的情况,不过总之没事了就好,等会就更新改掉这个 bug。

对,我的触摸板感觉和手机的手势差不多,就是双手放大之后就会触发,如果很慢很小心的只是用手指向下滑屏幕似乎不会触发

hymbz commented 5 months ago

已更新

tamendeshijie commented 5 months ago

已更新

感谢大佬,辛苦啦,嘿嘿,新年快乐