motionjs实现滚动鼠标卡片堆叠效果代码
代码语言:html
所属分类:加载滚动
代码描述:motionjs实现滚动鼠标卡片堆叠效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --card-height: 40vw; --card-margin: 4vw; --card-top-offset: 1em; --numcards: 4; --outline-width: 0px; } #cards { padding-bottom: calc(var(--numcards) * var(--card-top-offset)); /* Make place at bottom, as items will slide to that position*/ margin-bottom: var(--card-margin); /* Don't include the --card-margin in padding, as that will affect the scroll-timeline*/ } .card { position: sticky; top: 0; padding-top: var(--card-top-offset); transform-origin: 50% 0%; will-change: transform; } /** DEBUG **/ #debug { position: fixed; top: 1em; left: 1em; } #debug::after { content: " Show Debug"; margin-left: 1.5em; color: white; white-space: nowrap; } #debug:checked ~ main { --outline-width: 1px; } /** PAGE STYLING **/ * { /* Poor Man's Reset */ box-sizing: border-box; margin: 0; padding: 0; } body { background: rgb(58 29 43); color: rgb(255, 255, 255); text-align: center; font-size: calc(1em + 0.5vw); } header, main { width: 80vw; margin: 0 auto; } header { height: 100vh; display: grid; place-items: center; } #cards { list-style: none; outline: calc(var(--outline-width) * 10) solid blue; display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(var(--numcards), var(--card-height)); gap: var(--card-margin); } .card { outline: var(--outline-width) solid hotpink; } .card__content { box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.1), 0 1em 2em rgba(0, 0, 0, 0.1); background: rgb(255, 255, 255); color: rgb(10, 5, 7); border-radius: 1em; overflow: hidden; display: grid; grid-template-areas: "text img"; grid-template-columns: 1fr 1fr; grid-template-rows: auto; align-items: stretch; outline: var(--outline-width) solid lime; } .card__content > div { grid-area: text; width: 80%; place-self: center; text-align: left; display: grid; gap: 1em; pla.........完整代码请登录后点击上方下载按钮下载查看
网友评论0