view-timeline-name
view-timeline-name CSS 屬性用於定義命名檢視進度時間線的名稱。該時間線根據可滾動元素(滾動器)內元素(稱為主題)的可見性變化而推進。view-timeline 在主題上設定。
主題在滾動器內的可見性被跟蹤——預設情況下,當主題首次在滾動器的一邊可見時,時間線為0%,當它到達另一邊時,時間線為100%。該名稱隨後在 animation-timeline 宣告中被引用,以指示將隨時間線推進而動畫的元素。這可以是主題元素,但並非必須是——您可以在主題在滾動區域中移動時,為不同的元素設定動畫。
注意:如果滾動器元素在其軸維度上未溢位其容器,或者溢位被隱藏或剪裁,則不會建立滾動進度時間線。
view-timeline-name、view-timeline-axis 和 view-timeline-inset 屬性也可以透過 view-timeline 簡寫屬性進行設定。
語法
view-timeline-name: none;
view-timeline-name: --custom_name_for_timeline;
值
view-timeline-name 的允許值是:
none-
時間線沒有名稱。
<dashed-ident>-
任意自定義識別符號,用於定義檢視進度時間線的名稱,該名稱隨後可以在
animation-timeline屬性中引用。注意:
<dashed-ident>值必須以--開頭,這有助於避免與標準 CSS 關鍵字發生名稱衝突。
正式定義
正式語法
view-timeline-name =
[ none | <dashed-ident> ]#
示例
建立命名檢視進度時間線
名為 --subject-reveal 的檢視進度時間線使用 view-timeline-name 屬性在一個帶有 animation 類的主題元素上定義。然後,使用 animation-timeline: --subject-reveal; 將其設定為同一元素的時間線。結果是,當滾動文件時,主題元素會隨著其向上移動而動畫。
HTML
示例的 HTML 如下所示。
<div class="content">
<h1>Content</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Risus quis varius quam
quisque id. Et ligula ullamcorper malesuada proin libero nunc consequat
interdum varius. Elit ullamcorper dignissim cras tincidunt lobortis feugiat
vivamus at augue.
</p>
<p>
Dolor sed viverra ipsum nunc aliquet. Sed sed risus pretium quam vulputate
dignissim. Tortor aliquam nulla facilisi cras. A erat nam at lectus urna
duis convallis convallis. Nibh ipsum consequat nisl vel pretium lectus.
Sagittis aliquam malesuada bibendum arcu vitae elementum. Malesuada bibendum
arcu vitae elementum curabitur vitae nunc sed velit.
</p>
<div class="subject animation"></div>
<p>
Adipiscing enim eu turpis egestas pretium aenean pharetra magna ac. Arcu
cursus vitae congue mauris rhoncus aenean vel. Sit amet cursus sit amet
dictum. Augue neque gravida in fermentum et. Gravida rutrum quisque non
tellus orci ac auctor augue mauris. Risus quis varius quam quisque id diam
vel quam elementum. Nibh praesent tristique magna sit amet purus gravida
quis. Duis ultricies lacus sed turpis tincidunt id aliquet. In egestas erat
imperdiet sed euismod nisi. Eget egestas purus viverra accumsan in nisl nisi
scelerisque. Netus et malesuada fames ac.
</p>
</div>
CSS
subject 元素及其包含的 content 元素僅應用了最少的樣式,文字內容則設定了一些基本的字型樣式。
.subject {
width: 300px;
height: 200px;
margin: 0 auto;
background-color: deeppink;
}
.content {
width: 75%;
max-width: 800px;
margin: 0 auto;
}
p,
h1 {
font-family: "Helvetica", "Arial", sans-serif;
}
h1 {
font-size: 3rem;
}
p {
font-size: 1.5rem;
line-height: 1.5;
}
帶有 subject 類的 <div> 也被賦予 animation 類——在這裡設定 view-timeline-name 來定義一個命名檢視進度時間線。它還被賦予一個具有相同值的 animation-timeline 名稱,以宣告這將是隨著檢視進度時間線推進而動畫的元素。
最後,在元素上指定了一個動畫,該動畫使其不透明度和縮放發生變化,從而在它向上移動捲軸時淡入並變大。
.animation {
view-timeline-name: --subject-reveal;
animation-timeline: --subject-reveal;
animation-name: appear;
animation-fill-mode: both;
animation-duration: 1ms; /* Firefox requires this to apply the animation */
}
@keyframes appear {
from {
opacity: 0;
transform: scaleX(0);
}
to {
opacity: 1;
transform: scaleX(1);
}
}
結果
滾動以檢視主體元素的動畫效果。
規範
| 規範 |
|---|
| 滾動驅動動畫 # view-timeline-name |
瀏覽器相容性
載入中…