Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CSS-Eigenschaft overscroll-behavior

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die CSS-Eigenschaft overscroll-behavior steuert, was passiert, wenn beim Scrollen der Rand eines Scroll-Containers erreicht wird.

Probieren Sie es aus

overscroll-behavior: auto;
overscroll-behavior: contain;
overscroll-behavior: chain;
overscroll-behavior: none;
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="box">
      This is a scrollable container. Michaelmas term lately over, and the Lord
      Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As
      much mud in the streets as if the waters had but newly retired from the
      face of the earth.
      <br /><br />
      Lorem Ipsum has been the industry's standard dummy text ever since the
      1500s, when an unknown printer took a galley of type and scrambled it to
      make a type specimen book. It has survived not only five centuries, but
      also the leap into electronic typesetting, remaining essentially
      unchanged.
    </div>
    <div id="example-element">
      This is the inner container. Focus on this container, scroll to the bottom
      and when you reach the bottom keep scrolling.
      <p>
        If you have
        <code class="language-css">overscroll-behavior: auto;</code> selected
        the outer container will start to scroll.
      </p>
      If you have
      <code class="language-css">overscroll-behavior: contain;</code> selected,
      the outer container will not scroll unless you move your cursor out of the
      inner container and try to perform scroll on the outer container.
    </div>
  </div>
</section>
.example-container {
  width: 35em;
  height: 18em;
  border: medium dotted;
  padding: 0.75em;
  text-align: left;
  overflow: auto;
  display: flex;
}

.box {
  width: 50%;
}

#example-element {
  width: 50%;
  height: 12em;
  border: medium dotted #1b76c4;
  padding: 0.3em;
  margin: 0 0.3em;
  text-align: left;
  overflow: auto;
  overscroll-behavior: contain;
}

Zugehörige Eigenschaften

Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:

Syntax

css
/* Keyword values */
overscroll-behavior: auto; /* default */
overscroll-behavior: chain;
overscroll-behavior: contain;
overscroll-behavior: none;

/* Two values */
overscroll-behavior: auto contain;

/* Global values */
overscroll-behavior: inherit;
overscroll-behavior: initial;
overscroll-behavior: revert;
overscroll-behavior: revert-layer;
overscroll-behavior: unset;

Werte

Die Eigenschaft overscroll-behavior wird mit einem oder zwei Schlüsselwörtern aus der folgenden Werteliste angegeben.

Bei zwei Schlüsselwörtern legt das erste den Wert für die x-Achse und das zweite den Wert für die y-Achse fest. Wird nur ein Wert angegeben, gilt er für beide Achsen.

auto

Erlaubt das Standardverhalten an einer Scroll-Grenze. Das Scrollen kann in einem anderen Scroll-Container fortgesetzt werden.

chain

Erlaubt, das Scrollen außerhalb des Scroll-Containers fortzusetzen, verhindert aber „Bounce“-Effekte beim Überscrollen.

contain

Verhindert, dass das Scrollen außerhalb des Scroll-Containers fortgesetzt wird. „Bounce“-Effekte können weiterhin auftreten.

none

Verhindert, dass das Scrollen außerhalb des Scroll-Containers fortgesetzt wird, und unterbindet außerdem „Bounce“-Effekte beim Überscrollen.

Beschreibung

Mobile Browser zeigen standardmäßig häufig einen „Bounce“-Effekt oder aktualisieren sogar die Seite, wenn das obere oder untere Ende einer Seite (oder eines anderen scrollbaren Bereichs) erreicht wird. Vielleicht haben Sie auch schon bemerkt, dass bei einem Dialogfeld mit scrollbarem Inhalt auf einer ebenfalls scrollbaren Seite die darunterliegende Seite zu scrollen beginnt, sobald die Scroll-Grenze des Dialogfelds erreicht ist. Dieses Verhalten wird als Scroll Chaining bezeichnet.

In manchen Fällen sind diese Verhaltensweisen unerwünscht. Mit overscroll-behavior können Sie unerwünschtes Scroll Chaining und das „Pull to Refresh“-Verhalten des Browsers unterbinden.

Beachten Sie, dass diese Eigenschaft nur für Scroll-Container gilt. Insbesondere ist ein <iframe> kein Scroll-Container. Daher hat es keine Wirkung, diese Eigenschaft auf einem iframe zu setzen. Um Scroll Chaining aus einem iframe heraus zu steuern, setzen Sie overscroll-behavior sowohl auf dem <html>- als auch auf dem <body>-Element des iframe-Dokuments.

Ein Scroll-Container ohne scrollbaren Überlauf, beispielsweise ein Element mit overflow: hidden, gilt immer als an seiner Scroll-Grenze befindlich. Wenn Sie darauf einen vom Standard abweichenden Wert für overscroll-behavior wie contain oder none setzen, wird Scroll Chaining zu übergeordneten Scroll-Containern verhindert. Damit lässt sich verhindern, dass der Hintergrund scrollt, während ein Dialogfeld oder Overlay geöffnet ist.

Formale Definition

Anfangswertauto
Anwendbar aufnicht ersetzte Blocklevel Elemente und nicht ersetzte Inlineblock Elemente
VererbtNein
Berechneter Wertwie die jeweiligen Kurzschreibweisen:
Animationstypdiskret

Formale Syntax

overscroll-behavior = 
[ contain | none | auto | chain ]{1,2}

Beispiele

overscroll-behavior auf <dialog>-Elementen

In diesem Beispiel gibt es vier Schaltflächen, die jeweils ein Dialogfeld öffnen. Jedes Dialogfeld hat einen anderen Wert für overscroll-behavior. Außerdem gibt es ein <div>, das dafür sorgt, dass der Inhalt größer als der Container ist, damit der Scrolleffekt der Seite sichtbar wird.

HTML

html
<div class="buttons">
  <button popovertarget="dialog-auto"><code>auto</code></button>
  <button popovertarget="dialog-contain"><code>contain</code></button>
  <button popovertarget="dialog-chain"><code>chain</code></button>
  <button popovertarget="dialog-none"><code>none</code></button>
</div>
<div class="force-scroll"></div>
<dialog id="dialog-auto" popover>
  <code>overscroll-behavior: auto;</code>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa odio
    voluptatum minus dolorem assumenda nemo quos autem culpa, pariatur illo
    deserunt ea nam commodi fugiat ipsum quam alias suscipit facilis?
  </p>
</dialog>
<dialog id="dialog-contain" popover>
  <code>overscroll-behavior: contain;</code>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa odio
    voluptatum minus dolorem assumenda nemo quos autem culpa, pariatur illo
    deserunt ea nam commodi fugiat ipsum quam alias suscipit facilis?
  </p>
</dialog>
<dialog id="dialog-chain" popover>
  <code>overscroll-behavior: chain;</code>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa odio
    voluptatum minus dolorem assumenda nemo quos autem culpa, pariatur illo
    deserunt ea nam commodi fugiat ipsum quam alias suscipit facilis?
  </p>
</dialog>
<dialog id="dialog-none" popover>
  <code>overscroll-behavior: none;</code>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa odio
    voluptatum minus dolorem assumenda nemo quos autem culpa, pariatur illo
    deserunt ea nam commodi fugiat ipsum quam alias suscipit facilis?
  </p>
</dialog>

CSS

css
[popover] {
  width: 30vi;
  height: 10vi;
}
#dialog-auto {
  overscroll-behavior: auto;
}
#dialog-contain {
  overscroll-behavior: contain;
}
#dialog-chain {
  overscroll-behavior: chain;
}
#dialog-none {
  overscroll-behavior: none;
}

Ergebnis

Klicken Sie auf eine der Schaltflächen und scrollen Sie im daraufhin geöffneten Dialogfeld, um das jeweilige Verhalten zu sehen:

  • auto: Wenn Sie über die Grenze des Dialogfelds hinaus scrollen, „federt“ der Inhalt zurück. Scrollen Sie weiter, scrollt auch der Hintergrund.
  • contain: Wenn Sie über die Grenze des Dialogfelds hinaus scrollen, „federt“ der Inhalt zurück. Auch wenn Sie weiterscrollen, scrollt der Hintergrund nicht.
  • chain: Wenn Sie über die Grenze des Dialogfelds hinaus scrollen, „federt“ der Inhalt nicht zurück. Scrollen Sie weiter, scrollt auch der Hintergrund.
  • none: Wenn Sie über die Grenze des Dialogfelds hinaus scrollen, „federt“ der Inhalt nicht zurück. Auch wenn Sie weiterscrollen, scrollt der Hintergrund nicht.

Ein weiteres Beispiel dafür, wie sich das Scrollverhalten eines „Chat“-Fensters steuern lässt, finden Sie bei der Eigenschaft overscroll-behavior-y.

Spezifikationen

Spezifikation
CSS Overscroll Behavior Module Level 1
# overscroll-behavior-properties

Browser-Kompatibilität

Siehe auch