gsap+flip实现相册点击放大伸缩自适应布局效果代码
代码语言:html
所属分类:画廊相册
代码描述:gsap+flip实现相册点击放大伸缩自适应布局效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> :root { --base-color: #3f3352; --overlayH: 263; --overlayS: 23%; --overlayL: 26%; } * { box-sizing: border-box; } body { color: var(--base-color); padding: 1rem; margin: 0; min-height: 110vh; line-height: 1.6; font-family: muli, sans-serif; font-weight: 300; font-style: italic; font-size: 1.125rem; } h2, p { margin-top: 0; } h1, h2 { font-family: eloquent-jf-pro, serif; font-weight: 400; line-height: 1.125; } h2 { font-size: 1.25rem; } button { font-family: inherit; background: hsl(var(--overlayH), var(--overlayS), var(--overlayL)); color: white; border: none; padding: 0.5rem 0.75rem; text-transform: uppercase; cursor: pointer; } .button-inline { padding: 0; display: inline; background: transparent; color: inherit; text-decoration: underline; } main { visibility: hidden; } main { max-width: 1400px; margin: 1.5rem auto; display: grid; gap: 1rem; } @media (min-width: 800px) { main { grid-template-columns: 1fr 3fr; gap: 2rem; } } img, a { display: block; height: 100%; } article a { position: absolute; left: 0; right: 0; } img { max-width: 100%; width: 100%; object-fit: cover; } .grid { display: grid; grid-gap: 1.5rem; list-style: none; margin: 0; padding: 0; grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(16rem, max-content); position: relative; } @media (min-width: 1024px) { .grid { grid-template-columns: 1fr 1fr 1fr; } } .grid article { --max: 0; position: relative; overflow: hidden; } article:not(.details) button, article:first-child button { display: none; } article:first-child p:last-of-type { margin: 0; } .description { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1rem, 2.5vmin, 2.25rem); } article.details { grid-row: span 2; grid-column: span 2; } .description { background: linear-gradient( 0deg, hsl(var(--overlayH), var(--overlayS), var(--overlayL), calc(1 * var(--max))) 0%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.738 * var(--max)) ) 19%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.541 * var(--max)) ) 34%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.382 * var(--max)) ) 47%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.278 * var(--max)) ) 56.5%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.194 * var(--max)) ) 65%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.126 * var(--max)) ) 73%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.075 * var(--max)) ) 80.2%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.042 * var(--max)) ) 86.1%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.021 * var(--max)) ) 91%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.008 * var(--max)) ) 95.2%, hsla( var(--overlayH), var(--overlayS), var(--overlayL), calc(0.002 * var(--max)) ) 98.2%, hsla(var(--overlayH), var(--overlayS), var(--overlayL), 0) 100% ); } .........完整代码请登录后点击上方下载按钮下载查看
网友评论0