gsap+svg实现可调参数的分页滑动效果代码

代码语言:html

所属分类:布局界面

代码描述:gsap+svg实现可调参数的分页滑动效果代码

代码标签: gsap svg 参数 分页 滑动

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">


  
  
<style>
@import url('https://unpkg.com/normalize.css') layer(normalize);

@layer normalize, base, prototype, bridge;

@layer bridge {
  @supports (anchor-name: --pagination) {
      /* gap bridging... */
    [data-bridge=true][data-debug=true] {
      li:has(+ li.pagination__gap) a::after,
      li.pagination__gap + li a::after {
        opacity: 1;
      }  
    }
    [data-bridge=true] {
      li:has(+ li.pagination__gap) a::after,
      li.pagination__gap + li a::after {
        position: absolute;
        content: '';
        opacity: 0;    
        border: 1px solid currentColor;
        background: repeating-linear-gradient(45deg, color-mix(in hsl, currentColor, #0000) 0 1px, #0000 1px 5px);
      }
      li:has(+ li.pagination__gap) a::after {
        inset: 0 -50% 0 100%;
        color: hsl(320 90% 75%);
      }
      li.pagination__gap + li a::after {
        color: hsl(220 90% 75%);
        inset: 0 100% 0 -50%;
      }
    }
  } 
}

@layer prototype {
  .pagination {
    --size: 36px;
    --inset: 2px;
    position: relative;

    .pagination__list {
      display: flex;
      list-style: none;
      align-items: center;
      padding: 0;
      margin: 0;

      li {
        width: var(--size);
        aspect-ratio: 1;
        display: grid;
        place-items: center;

        a {
          display: grid;
          place-items: center;
          color: inherit;
          text-decoration: none;
          width: 100%;
          height: 100%;
          -webkit-user-select: none;
             -moz-user-select: none;
              -ms-user-select: none;
                  user-select: none;
          position: relative;
          outline-color: canvasText;
          -webkit-tap-highlight-color: #0000;
          @media (prefers-reduced-motion: no-preference) {
            transition: color 0.2s ease-out, opacity 0.2s ease-out;
          }


          &[aria-current=page] {
            color: light-dark(#fff, #000);
          }
          
          &.pagination__link--disabled {
            opacity: 0.3;
            cursor: not-allowed;
            pointer-events: none;
          }
        }
      }
    }
  }
  @supports not (anchor-name: --active-page) {
    .pagination a.pagination__link:not(.pagination__link--arrow) {
      &::before, &::after {
        content: '';
        position: absolute;
        inset: var(--inset);
        border-radius: calc(var(--pagination-radius) * 1px);
        background: light-dark(color-mix(in srgb, canvasText 10%, canvas), color-mix(in srgb, canvasText 20%, canvas));
        z-index: -1;
        opacity: 0;
      }

      &[aria-current=page]::before {
        background: light-dark(#000, hsl(0, 0%, 80%));
      }

      &:hover:not([aria-current=page])::before,
      &[aria-c.........完整代码请登录后点击上方下载按钮下载查看

网友评论0