主题预览弹窗

是的,我觉得这是因为 Discourse 不将 iPad 视为移动设备。我已经将检测方式改为基于视口(viewport)。你能再试一次吗?

是啊,平板确实让人头疼。但现在它不支持任何手势操作,而关闭弹窗的唯一方式就是点击 X。

就我个人而言……我觉得这样也足够了。而且平板(尤其是 iPad)在设备中的占比其实并不高,所以我不太确定是否真的有必要花太多时间去调整它们——毕竟,平板本质上只是尺寸更大的移动设备或桌面风格设备罢了。

1 个赞

对,再澄清一下:这些关闭手势仅在移动端弹窗中启用。桌面端弹窗完全不受影响,行为与之前保持一致。

因此,None/Grip/Gesture 选项只会改变移动视口下的行为。桌面端用户仍将使用现有的正常弹窗行为(点击 X 按钮或点击弹窗外部)。

桌面端弹窗(滑动无效)

移动端弹窗(滑动应生效)

小小跟进一下 :blush:

真的非常感谢大家能在手机上帮忙测试一下。谢谢!

1 个赞

iPhone 15+,最新 iOS,hub/PWA/Safari:

从左到右滑动时,很难找到正确的触发位置。但我认为这源于设备本身,因为其他应用/网站也偶尔会出现同样的问题。不过,网上也有解决方案,可以让系统不关心滑动手势是从哪里开始的。

不过,Discourse 本身的左滑返回操作倒是很顺畅。

谢谢 @Jagster,我想确认一下,当主题预览弹窗打开时,如果使用向左滑动返回的手势,是关闭弹窗并停留在主题列表页面,还是返回到上一页?

我可以确认,在 Android 17 (AOSP) 上,返回手势和上滑/下滑操作都是正常的 :raised_fist:

一个小细节:动画有点卡顿/缓慢。

1 个赞

感谢测试!:raising_hands:

你提到动画有点卡顿/缓慢,是指向上滑动关闭的动画吗?

没错,其他部分都非常流畅!很荣幸能测试你的作品,老板。

1 个赞

谢谢,我已经修复了!请再检查一下。 :slightly_smiling_face:

1 个赞

迫不及待想回去测试一下。超级兴奋,哈哈

2 个赞

太棒了,多谢你!下滑和返回手势现在变得非常流畅了。

说实话,上滑手势似乎还是老样子。虽然是小问题,但你知道的,设备各不相同,顺便记录一下,这是在 Android 17 上测试的。

1 个赞

啊,谢谢!你能快速录个屏,展示一下向上滑动关闭的效果吗?我想看看动画具体是在哪里感觉不对劲。在我的 Android 16 设备上,动画运行得很流畅。

2 个赞

当模态框打开时,执行滑动返回操作确实会关闭模态框。问题在于它通常要尝试第五次左右才能成功。也就是说,在模态框打开时,该操作起初没有任何反应,但一旦生效,其行为就符合预期。

1 个赞

ios 27的safari浏览器体验非常不错!谢谢你的付出!:heart:

1 个赞

我现在意识到 iPhone 上的问题所在:只有在使用主题的头部区域时,向下滑动返回功能才能正常工作。

感谢大家的测试!:heart:

我已经合并了此内容:FEATURE: Add configurable mobile modal dismiss gestures - Pull Request #7 - VaperinaDEV/discourse-topic-preview-modal - GitHub


可配置的手机端关闭手势

此更新为“主题预览模态框”(Topic Preview Modal)添加了可配置的关闭选项:

  • 无(None): 不添加额外的关闭手势
  • 抓手(Grip): 在模态框底部显示一个可视化的抓手
  • 手势(Gesture): 允许通过手势关闭模态框:
    • 在底部时向上滑动
    • 原生移动端返回手势/按钮

在所有模式下,都支持向下滑动关闭。


原生返回行为在移动端尤其有用:它不会让你离开底层的主题列表,而是关闭模态框,并保留用户在列表中的位置。

桌面端的模态框不受这些选项的影响。


如果你觉得这很有用,请考虑支持其持续开发。:heart:
> ./support --coffee

2 个赞

我还为“主题预览”弹窗添加了可选的触觉反馈:FEATURE: Add haptic feedback to modal open and close - Pull Request #8 - VaperinaDEV/discourse-topic-preview-modal - GitHub

启用后,支持的 Android 设备将提供:

  • 打开弹窗时的轻微触觉反馈
  • 关闭弹窗时稍强的触觉反馈

可以通过新增的 Haptic feedbackmodal_haptic_feedback)设置来启用或禁用该功能。

默认设置为启用

打开和关闭时的触觉反馈时长被刻意设计得有所不同,以便让这两种交互在手感上有所区分。

1 个赞

你好 :waving_hand:

我补充了一个缺失的功能:FEATURE: Add topic progress bar (timeline) - Pull Request #9 - VaperinaDEV/discourse-topic-preview-modal - GitHub

> ./support --coffee :heart:

1 个赞