sda-utilities的trackProgress实现滚动网页首屏粘性置顶效果代码
代码语言:html
所属分类:加载滚动
代码描述:sda-utilities的trackProgress实现滚动网页首屏粘性置顶效果代码。
代码标签: sda-utilities trackProgress 滚动 网页 首屏 粘性 置顶
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
@layer scrollsnapping {
html {
scroll-snap-type: y mandatory;
--card-large: 0; /* Value gets set via JS */
--card-small: 0; /* Value gets set via JS */
}
.card::before, .tracks::before {
content: "";
pointer-events: none;
z-index: -1;
position: absolute;
width: 100%;
top: 0;
left: 0;
scroll-snap-align: start;
z-index: 10;
}
.card::before {
height: var(--card-large);
}
.tracks {
position: relative;
}
.tracks::before {
scroll-margin-top: var(--card-small);
top: var(--card-large);
height: calc(100% - var(--card-large));
}
}
@layer viewtransitions {
/* Configure the durations.
The idea here is that the card itself runs for a certain duration,
but elements in that card only for a certain part of that entire duration.
To achieve this, the durations and delays are expressed as fractions, which
are then used in a calcuation to get the actual duration in seconds.
*/
::view-transition {
--vt-base-duration: 1s;
--vt-description-duration: 0.5;
--vt-description-delay: 0;
--vt-moremeta-duration: 0.65;
--vt-moremeta-delay: 0.2;
--vt-title-duration: 0.6;
--vt-title-delay: 0.2;
--vt-meta-duration: 0.5;
--vt-meta-delay: 0.3;
}
/* Apply base duration to all + make sure they are linear */
::view-transition-group(*) {
animation-duration: var(--vt-base-duration);
animation-timing-function: linear;
}
/* Also inherit the delay and easing from the group onto the child pseudos */
::view-transition-image-pair(*),
::view-transition-new(*),
::view-transition-old(*) {
animation-delay: inherit;
animation-timing-function: inherit;
}
/* Allow cursor to send events to underlying page while a VT is running */
::view-transition {
pointer-events: none;
}
/* Some keyframes to use */
@keyframes slide-up { to { translate: 0 -100%; }}
@keyframes slide-down { from { translate: 0 -100%; }}
@keyframes fade-out { to { opacity: 0; }}
@keyframes fade-in { from { opacity: 0; }}
/* Capture all these individual elements instead. Also, don’t capture the root. */
/* Note: we don’t capture the tracklist in this version! */
:root {
view-transition-name: none;
}
.card {
view-transition-name: card;
}
.meta {
view-transition-name: meta;
}
.title {
view-transition-name: title;
}
.moremeta {
view-transition-name: moremet.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0