hammer.js实现自适应响应式时间线大事记效果代码

代码语言:html

所属分类:响应式

代码描述:hammer.js实现自适应响应式时间线大事记效果代码

代码标签: hammer.js 自适应 响应式 时间线 大事记

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

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

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

    <style>
        *,
        *::before,
        *::after {
          margin: 0;
          padding: 0;
          box-sizing: border-box;
        }
        
        button {
          background: transparent;
          border: none;
          cursor: pointer;
          outline: none;
        }
        
        body {
          font: normal 16px/1.5 "Helvetica Neue", sans-serif;
          background: #456990;
          color: #fff;
        }
        
        
        /* .section SECTION
        –––––––––––––––––––––––––––––––––––––––––––––––––– */
        
        .section {
          background: #F45B69;
          padding: 50px 0;
        }
        
        .section .container {
          width: 90%;
          max-width: 1200px;
          margin: 0 auto;
          text-align: center;
        }
        
        .section h1 {
          font-size: 2.5rem;
        }
        
        .section h2 {
          font-size: 1.3rem;
        }
        
        
        /* TIMELINE
        –––––––––––––––––––––––––––––––––––––––––––––––––– */
        
        .timeline {
          white-space: nowrap;
          overflow-x: hidden;
        }
        
        .timeline ol {
          font-size: 0;
          width: 100vw;
          padding: 250px 0;
          transition: all 1s;
        }
        
        .timeline ol li {
          position: relative;
          display: inline-block;
          list-style-type: none;
          width: 160px;
          height: 3px;
          background: #fff;
        }
        
        .timeline ol li:last-child {
          width: 280px;
        }
        
        .timeline ol li:not(:first-child) {
          margin-left: 14px;
        }
        
        .timeline ol li:not(:last-child)::after {
          content: '';
          position: absolute;
          top: 50%;
          left: calc(100% + 1px);
          bottom: 0;
          width: 12px;
          height: 12px;
          transform: translateY(-50%);
          border-radius: 50%;
          background: #F45B69;
        }
        
        .timeline ol li div {
          position: absolute;
          left: calc(100% + 7px);
          width: 280px;
          padding: 15px;
          font-size: 1rem;
          white-space: normal;
          color: black;
          background: white;
        }
        
        .timeline ol li div::before {
          content: '';
          position: absolute;
          top: 100%;
          left: 0;
          width: 0;
          height: 0;
          border-style: solid;
        }
        
        .timeline ol li:nth-child(odd) div {
          top: -16px;
          transform: translateY(-100%);
        }
        
        .timeline ol li:nth-child(odd) div::before {
          top: 100%;
          border-width: 8px 8px 0 0;
          border-color: white transparent transparent transparent;
        }
        
        .timeline ol li:nth-child(even) div {
          top: calc(100% + 16px);
        }
        
        .timeline ol li:nth-child(even) div::before {
          top: -8px;
          border-width: 8px 0 0 8px;
          border-color: transparent transparent transparent white;
        }
        
        .timeline time {
          display: block;
          font-size: 1.2rem;
          font-weight: bold;
          margin-bottom: 8px;
        }
        
        
        /* TIMELINE ARROWS
        –––––––––––––––––––––––––––––––––––––––––––––––––– */
        
        .timeline .arrows {
          display: flex;
          justify-content: center;
          margin-bottom: 20px;
        }
        
        .timeline .arrows .arrow__prev {
          margin-right: 20px;
        }
        
        .timeline .disabled {
          opacity: .5;
        }
        
        .timeline .arrows img {
          width: 45px;
          height: 45px;
        }
        
        
        /* GENERAL MEDIA QUERIES
        –––––––––––––––––––––––––––––––––––––––––––––––––– */
        @media screen and (max-width: 599px) {
          .timeline ol,
          .timeline ol li {
            width: auto; 
          }
          
          .timeline ol {
            padding: 0;
            transform: none !important;
          }
          
          .timeline ol li {
            display: block;
            height: auto;
            background: transparent;
          }
          
          .timeline ol li:first-child {
            margin-top: 25px;
          }
          
          .timeline ol li:not(:first-child) {
            margin-left: auto;
          }
          
          .timeline ol li div {
            width: 94%;
            height: auto !important;
            margin: 0 auto 25px;
          }
          
          .timeline ol li div {
            position: static;
          }
          
          .timeline ol li:nth-child(odd) div {
            transform: none;
          }
          
          .timeline ol li:nth-child(odd) div::before,
          .timeline ol li:nth-child(even) div::before {
            left: 50%;
            top: 100%;
            transform: translateX(-50%);
            border: none;
            border-left: 1px solid white;
            height: 25px;
          }
          
          .timeline ol li:last-child,
          .timeline ol li:nth-last-child(2) div::before,
          .timeline ol li:not(:last-child)::after,
          .timeline .arrows {
            display: none;
          }
        }
    </style>
</head>

<body>



    <section class="timeline">
        <ol>
            <li>
                <div>
                    <time>1934</time> At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium
                </div>
            </li>
            <li>
                <div>
                    <time>1937</time> Proin quam velit, efficitur vel neque vitae, rhoncus commodo mi. Suspendisse finibus mauris et bibendum molestie. Aenean ex augue, varius et pulvinar in, pretium non nisi.
                </div>
            </li>
            <li>
                <div>
                    <time>1940</time> Proin iaculis, nibh eget efficitur varius, libero tellus porta dolor, at pulvinar tortor ex eget ligula. Integer eu dapibus arcu, sit amet sollicitudin eros.
                </div>
            </li>
            <li>
                <div>
                    <time>1943</time> In mattis elit vitae odio posuere, nec maximus massa varius. Suspendisse varius volutpat mattis. Vestibulum id magna est.
                </div>
            </li>
            <li>
                <div>
                    <time>1946</time> In mattis elit vitae odio posuere, nec maximus massa varius. Suspendisse varius volutpat mattis. Vestibulum id magna est.
                </div>
            </li>
            <li>
                <div>
                    <time>1956</time> In mattis elit vitae odio posuere, nec maximus massa varius. Suspendisse varius volutpat mattis. Vestibulum id magna est.
      .........完整代码请登录后点击上方下载按钮下载查看

网友评论0