scroll-behavior
åºçº¿
广æ³å¯ç¨
èª 2022å¹´3æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
å½ç¨æ·æå¨å¯¼èªæè
CSSOM scrolling API è§¦åæ»å¨æä½æ¶ï¼CSS 屿§ scroll-behavior 为ä¸ä¸ªæ»å¨æ¡æå®æ»å¨è¡ä¸ºï¼å
¶ä»ä»»ä½çæ»å¨ï¼ä¾å¦é£äºç±äºç¨æ·è¡ä¸ºè产ççæ»å¨ï¼ä¸åè¿ä¸ªå±æ§çå½±åã卿 ¹å
ç´ ä¸æå®è¿ä¸ªå±æ§æ¶ï¼å®åèéç¨äºè§çªã
| åå§å¼ | auto |
|---|---|
| éç¨å ç´ | scrolling boxes |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| 计ç®å¼ | as specified |
| å¨ç»ç±»å | Not animatable |
å°è¯ä¸ä¸
scroll-behavior: auto;
scroll-behavior: smooth;
<section id="default-example">
<div class="container">
<p class="nav">
Scroll to:
<a href="#pageA">A</a>
<a href="#pageB">B</a>
<a href="#pageC">C</a>
</p>
<scroll-container id="example-element">
<scroll-page id="pageA">A</scroll-page>
<scroll-page id="pageB">B</scroll-page>
<scroll-page id="pageC">C</scroll-page>
</scroll-container>
</div>
</section>
/* stylelint-disable selector-type-no-unknown */
.container {
flex-direction: column;
}
.nav a {
color: #009e5f;
}
scroll-container {
border: 1px solid black;
display: block;
height: 200px;
overflow-y: scroll;
width: 200px;
}
scroll-page {
align-items: center;
display: flex;
font-size: 5em;
height: 100%;
justify-content: center;
}
ç¨æ·ä»£çå¯ä»¥å¿½ç¥æ¤å±æ§ã
è¯æ³
css
/* Keyword values */
scroll-behavior: auto;
scroll-behavior: smooth;
/* Global values */
scroll-behavior: inherit;
scroll-behavior: initial;
scroll-behavior: unset;
å¼
å½¢å¼è¯æ³
scroll-behavior =
auto |
smooth
示ä¾
>HTML
html
<nav>
<a href="#page-1">1</a>
<a href="#page-2">2</a>
<a href="#page-3">3</a>
</nav>
<scroll-container>
<scroll-page id="page-1">1</scroll-page>
<scroll-page id="page-2">2</scroll-page>
<scroll-page id="page-3">3</scroll-page>
</scroll-container>
CSS
css
a {
display: inline-block;
width: 50px;
text-decoration: none;
}
nav,
scroll-container {
display: block;
margin: 0 auto;
text-align: center;
}
nav {
width: 339px;
padding: 5px;
border: 1px solid black;
}
scroll-container {
display: block;
width: 350px;
height: 200px;
overflow-y: scroll;
scroll-behavior: smooth;
}
scroll-page {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
font-size: 5em;
}
ç»æ
è§è
| è§è |
|---|
| CSS Overflow Module Level 3 > # smooth-scrolling > |