> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upcart 关闭后无法滚动商店页面

> 本文概述如何解决关闭 Upcart 后出现的商店页面滚动问题。

<div id="overview">
  ## 概览
</div>

如果关闭 Upcart 后商店页面变得无法滚动，这很可能是由主题在 cart drawer 打开时锁定页面滚动的逻辑造成的。此外，Upcart 现在提供了内置设置来解决这些问题，例如覆盖现有的滚动锁定逻辑。

你可以使用 Upcart 内的内置设置来解决此问题，也可以添加一段小的自定义代码来移除滚动锁定行为。

***

解决方法

<div id="using-built-in-solutions">
  # 使用内置解决方案
</div>

在大多数情况下，Upcart 设置中的内置选项无需自定义代码即可解决滚动问题。

1. **启用 "Override existing scroll locking logic"**：

   * 在 Upcart 设置中打开 Cart Editor。
   * 前往 **Settings** → **Cart settings**，然后展开 **Advanced Settings**。
   * 启用 **Override existing scroll locking logic**。其说明恰好涵盖了这种情况：主题或第三方应用在购物车关闭后仍将页面锁定在滚动状态。

   没有单独的移动端或遮罩层滚动设置——这一个复选框同时涵盖两者。

按照以下步骤应用自定义代码，以在购物车关闭后恢复页面滚动。

***

<div id="accessing-custom-html-settings">
  ## 访问自定义 HTML 设置
</div>

1. 从 Shopify 控制面板打开 **Upcart 应用**。
2. 导航至 **Cart Editor**。
3. 打开 **Settings** 并选择 **Custom HTML** 选项卡。Settings 是一排选项卡——如果你没有看到 Custom HTML，它位于 **More settings** 中。

***

<div id="adding-the-code">
  ## 添加代码
</div>

1. 对于内置解决方案无法解决问题的高级或特殊情况，你可以在 Upcart 中应用自定义 HTML 代码。选择在 Upcart 中应用 HTML 代码的位置。对于此修复，请选择 **Above Announcements/Rewards** 部分。
2. 添加以下代码片段：

```
<script>  
window.upcartSubscribeCartOpened(() => {  
  var elementLockingThePage = document.querySelector('body');  
  if (elementLockingThePage != null) {  
    elementLockingThePage.setAttribute('style', 'overflow-Y:hidden !important');  
  }  
});  
window.upcartSubscribeCartClosed(() => {  
  var elementLockingThePage = document.querySelector('body');  
  if (elementLockingThePage != null) {  
    elementLockingThePage.setAttribute('style', 'overflow-Y:scroll !important');  
  }  
});  
</script>
```

<Note>
  **旧版说明：** `window.upcartOnCartOpened` 和 `window.upcartOnCartClosed` 回调仍然有效，但已被弃用并会在控制台记录警告。所有新脚本请使用 `upcartSubscribeCartOpened` 和 `upcartSubscribeCartClosed`。
</Note>

1. 保存更改。
2. 刷新你的店面并测试关闭购物车，确认滚动已恢复。

***

<div id="why-this-happens">
  ## 出现此问题的原因
</div>

Upcart 打开时会隐藏商店的原生 cart drawer 并接管其视觉空间。然而，某些主题包含在抽屉激活时锁定页面滚动的代码。Upcart 关闭后，该锁定可能仍然存在，导致页面无法滚动。在移动设备上，还可能出现其他问题，例如遮罩层持续存在或导致页面无法点击。这些问题通常与移动端特有的滚动锁定行为或未重置的遮罩层有关。

上面的脚本通过在购物车打开或关闭时手动重置页面的 overflow 属性来恢复正常的滚动行为。

***

需要帮助或进一步排查

<div id="additional-steps-before-contacting-support">
  # 联系支持团队前的额外步骤
</div>

1. 确保已启用 **Override existing scroll locking logic**。
2. 再次检查是否有自定义代码或第三方脚本可能造成干扰。

如果应用此修复后仍然遇到滚动问题，你的主题可能使用了不同的选择器或自定义滚动逻辑。

请联系 **Upcart 支持团队**协助确定正确的选择器，或联系你的**主题开发者**帮助调整主题的滚动设置。
