> ## 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 を閉じた後にストアページがスクロールできなくなる場合、カートドロワーが開いているときにページスクロールをロックするテーマのロジックが原因である可能性が高いです。また、Upcart には現在、既存のスクロールロックロジックの上書きなど、これらの問題に対処するための組み込み設定が用意されています。

この問題は、Upcart 内の組み込み設定を使用するか、スクロールロックの動作を解除する簡単なカスタマイズを追加することで解決できます。

***

解決方法

<div id="using-built-in-solutions">
  # 組み込みソリューションを使用する
</div>

ほとんどの場合、Upcart 設定の組み込みオプションで、カスタムコードを使わずにスクロールの問題を解決できます。

1. **「Override existing scroll locking logic」を有効にする**:

   * Upcart の設定からカートエディターを開きます。
   * **Settings** → **Cart settings** に移動し、**Advanced Settings** を展開します。
   * **Override existing scroll locking logic** を有効にします。この設定の説明はまさにこのケース、つまりカートが閉じた後もテーマやサードパーティアプリがページをスクロールロックしたままにしてしまう問題を対象としています。

   モバイル用やオーバーレイ用の個別のスクロール設定はありません。このチェックボックス 1 つで両方に対応します。

カートを閉じた後にページのスクロールを復元するカスタマイズを適用するには、次の手順に従ってください。

***

<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 が開くと、ストアのネイティブカートドロワーを非表示にし、その表示領域を引き継ぎます。しかし、一部のテーマには、ドロワーがアクティブな間ページスクロールをロックするコードが含まれています。Upcart が閉じた後もそのロックが残り、ページがスクロールできなくなることがあります。モバイルデバイスでは、オーバーレイが残り続けたり、ページがクリックできなくなったりするなどの追加の問題が発生することがあります。これらの問題は、多くの場合、モバイル固有のスクロールロックの動作やリセットされていないオーバーレイに起因します。

上記のスクリプトは、カートが開閉されたときにページの overflow プロパティを手動でリセットすることで、通常のスクロール動作を復元します。

***

サポートが必要な場合、または追加のトラブルシューティング

<div id="additional-steps-before-contacting-support">
  # サポートに問い合わせる前の追加手順
</div>

1. **Override existing scroll locking logic** が有効になっていることを確認します。
2. カスタムコードやサードパーティスクリプトが干渉していないか再確認します。

修正を適用してもスクロールの問題が解決しない場合、テーマが別のセレクターやカスタムのスクロールロジックを使用している可能性があります。

正しいセレクターの特定については **Upcart サポート**に、テーマのスクロール設定の調整については**テーマ開発者**にお問い合わせください。
