Search code examples
htmlcsstimeline

Scrolling div container not displaying all list items


I have a horizontal scrollable div that contains a timeline. However, when you scroll all the way to the left it is not displaying the first ~8 list items. I can't figure out why. Below is my JSbin.

JSBIN: https://codepen.io/nerdy-droid/pen/eYmVBeJ

Here is the CSS I am using:

.timeline {
  list-style-type: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.li {
  transition: all 200ms ease-in;
}

.timestamp {
  margin-bottom: 20px;
  padding: 0px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 100;
}

.status {
  padding: 0px 40px;
  display: flex;
  justify-content: center;
  border-top: 2px solid #D6DCE0;
  position: relative;
  transition: all 200ms ease-in;
}
.status h4 {
  font-weight: 600;
}
.status:before {
  content: "";
  width: 25px;
  height: 25px;
  background-color: white;
  border-radius: 25px;
  border: 1px solid #ddd;
  position: absolute;
  top: -15px;
  left: 42%;
  transition: all 200ms ease-in;
}

.li.complete .status {
  border-top: 2px solid #66DC71;
}
.li.complete .status:before {
  background-color: #66DC71;
  border: none;
  transition: all 200ms ease-in;
}
.li.complete .status h4 {
  color: #66DC71;
}

@media (min-device-width: 320px) and (max-device-width: 700px) {
  .timeline {
    list-style-type: none;
    display: block;
  }

  .li {
    transition: all 200ms ease-in;
    display: flex;
    width: inherit;
  }

  .timestamp {
    width: 100px;
  }

  .status:before {
    left: -8%;
    top: 30%;
    transition: all 200ms ease-in;
  }
}
html, body {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  font-family: "Titillium Web", sans serif;
  color: #758D96;
}

button {
  position: absolute;
  width: 100px;
  min-width: 100px;
  padding: 20px;
  margin: 20px;
  font-family: "Titillium Web", sans serif;
  border: none;
  color: white;
  font-size: 16px;
  text-align: center;
}

#toggleButton {
  position: absolute;
  left: 50px;
  top: 20px;
  background-color: #75C7F6;
}

.outer {
    width: 500px;
    height: 300px;
    white-space: nowrap;
    position: relative;
    overflow-x: scroll;
    overflow-y: hidden;
   -webkit-overflow-scrolling: touch;
}

Here is the HTML:

<link href='https://fonts.googleapis.com/css?family=Titillium+Web:400,200,300,600,700' rel='stylesheet' type='text/css'>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">

<div class="outer">
<ul class="timeline" id="timeline">
  <li class="li complete">
    <div class="timestamp">
      <span class="author">First One</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> First One</h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Shift Completed </h4>
    </div>
  </li>
      <li class="li complete">
    <div class="timestamp">
      <span class="author">Abhi Sharma</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Shift Created </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> Email Sent </h4>
    </div>
  </li>
  <li class="li complete">
    <div class="timestamp">
      <span class="author">Aaron Rodgers</span>
      <span class="date">11/15/2014<span>
    </div>
    <div class="status">
      <h4> SIC Approval </h4>
    </div>
  </li>
  <li class="li">
    <div class="timestamp">
      <span class="author">PAM Admin</span>
      <span class="date">TBD<span>
    </div>
    <div class="status">
      <h4> Last One</h4>
    </div>
  </li>
 </ul>
   </div>

Thanks in advance!


Solution

  • .timeline {
      list-style-type: none;
      display: flex;
      align-items: center;
      justify-content: flex-start;
    }
    
    .li {
      transition: all 200ms ease-in;
    }
    
    .timestamp {
      margin-bottom: 20px;
      padding: 0px 40px;
      display: flex;
      flex-direction: column;
      align-items: center;
      font-weight: 100;
    }
    
    .status {
      padding: 0px 40px;
      display: flex;
      justify-content: center;
      border-top: 2px solid #D6DCE0;
      position: relative;
      transition: all 200ms ease-in;
    }
    .status h4 {
      font-weight: 600;
    }
    .status:before {
      content: "";
      width: 25px;
      height: 25px;
      background-color: white;
      border-radius: 25px;
      border: 1px solid #ddd;
      position: absolute;
      top: -15px;
      left: 42%;
      transition: all 200ms ease-in;
    }
    
    .li.complete .status {
      border-top: 2px solid #66DC71;
    }
    .li.complete .status:before {
      background-color: #66DC71;
      border: none;
      transition: all 200ms ease-in;
    }
    .li.complete .status h4 {
      color: #66DC71;
    }
    
    @media (min-device-width: 320px) and (max-device-width: 700px) {
      .timeline {
        list-style-type: none;
        display: block;
      }
    
      .li {
        transition: all 200ms ease-in;
        display: flex;
        width: inherit;
      }
    
      .timestamp {
        width: 100px;
      }
    
      .status:before {
        left: -8%;
        top: 30%;
        transition: all 200ms ease-in;
      }
    }
    html, body {
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      font-family: "Titillium Web", sans serif;
      color: #758D96;
    }
    
    .outer {
        width: 500px;
        height: 300px;
        white-space: nowrap;
        position: relative;
        overflow-x: scroll;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }
    <link href='https://fonts.googleapis.com/css?family=Titillium+Web:400,200,300,600,700' rel='stylesheet' type='text/css'>
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
    
    <div class="outer">
    <ul class="timeline" id="timeline">
      <li class="li complete">
        <div class="timestamp">
          <span class="author">First One</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> First One</h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> First Shown - but not first entry </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Shift Completed </h4>
        </div>
      </li>
          <li class="li complete">
        <div class="timestamp">
          <span class="author">Abhi Sharma</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Shift Created </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">PAM Admin</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> Email Sent </h4>
        </div>
      </li>
      <li class="li complete">
        <div class="timestamp">
          <span class="author">Aaron Rodgers</span>
          <span class="date">11/15/2014<span>
        </div>
        <div class="status">
          <h4> SIC Approval </h4>
        </div>
      </li>
      <li class="li">
        <div class="timestamp">
          <span class="author">PAM Admin PAM Admin</span>
          <span class="date">TBD<span>
        </div>
        <div class="status">
          <h4> Last One</h4>
        </div>
      </li>
     </ul>
       </div>

    Change the value of class timeline's justify-content from center to flex-start.

    .timeline { list-style-type: none; display: flex; align-items: center; justify-content: flex-start;}