久久资源网

js css3响应式时间轴动画特效

js css3响应式时间轴动画特效

2019-03-31 11:01:47 CSS3实例

售价:5.00积分 会员免费

特别声明:资源售价只是赞助,不代表代码或者素材本身点数。收取费用仅维持本站的日常运营所需!

js css3响应式时间轴动画特效

css3垂直时间轴页面滚动方块格子动画特效。

使用方法

1、head引入css文件

<style>
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font: normal 16px/1.5 'Titillium Web', sans-serif;
  background: linear-gradient(54deg, #9164ff, #8bfff4);
  color: #3c3f64;
  overflow-x: hidden;
  padding-bottom: 50px;
}

.timeline ul li {
  list-style-type: none;
  position: relative;
  width: 6px;
  margin: 0 auto;
  padding-top: 50px;
  background: #fff;
}
.timeline ul li::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%) rotate(45deg);
  width: 20px;
  height: 20px;
  z-index: 2;
  background: #eee;
}
.timeline ul li div {
  position: relative;
  bottom: 0;
  width: 400px;
  padding: 20px;
  background: #fff;
  box-shadow: 4px 13px 30px 1px rgba(252, 56, 56, 0.2);
  border-radius: 5px;
  display: flex;
  align-items: center;
}
.timeline ul li div time {
  position: absolute;
  background: #f5af19;
  width: 80px;
  height: 30px;
  top: -15px;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  letter-spacing: 2px;
}
.timeline ul li div div {
  height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.timeline ul li div div p {
  text-align: center;
}
.timeline ul li div .discovery {
  margin-right: 10px;
}
.timeline ul li:nth-of-type(odd) > div {
  left: 45px;
}
.timeline ul li:nth-of-type(even) > div {
  left: -439px;
}

.timeline ul li div {
  visibility: hidden;
  opacity: 0;
  transition: all 0.5s ease-in-out;
}
.timeline ul li:nth-of-type(odd) div {
  transform: translate3d(100px, -10px, 0) rotate(10deg);
}
.timeline ul li:nth-of-type(even) div {
  transform: translate3d(-100px, -10px, 0) rotate(10deg);
}
.timeline ul li.in-view div {
  transform: none;
  visibility: visible;
  opacity: 1;
}

@media screen and (max-width: 900px) {
  .timeline ul li div {
    width: 250px;
    flex-direction: column;
  }
  .timeline ul li div div {
    width: 80%;
    margin: 10px;
  }
  .timeline ul li:nth-of-type(even) > div {
    left: -289px;
  }
}
@media screen and (max-width: 600px) {
  body {
    background: #8bfff4;
  }

  .timeline ul li {
    margin-left: 20px;
  }
  .timeline ul li div {
    width: calc(100vw - 91px);
  }
  .timeline ul li:nth-of-type(even) > div {
    left: 45px;
  }
}
</style>

2、body引入HTML代码

<section class="timeline">
    <ul>
        <li>
            <div>
                <time>1687</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Laws of motion
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Newton</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1785</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Law of electrostatic attraction
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Coulomb</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1827</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Law of Electric Resistance
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>G.S Ohm</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1831</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Electromagnetic Induction
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Michael Faraday</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1867</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Dynamite
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Alfred Nobel</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1895</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        X Rays
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Roentgen</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1897</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Electron
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>J.J.Thomson</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1898</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Radium
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Madam Curie</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1900</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Quantum Theory
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Max Plank</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1905</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Principle of Relativity
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Albert Einstein</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1905</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Photo electric effect
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Albert Einstein</span>
                </div>
            </div>
        </li>
        <li>
            <div>
                <time>1942</time>
                <div class="discovery">
                    <h1>Discovery</h1>
                    <p>
                        Nuclear Reactor
                    </p>
                </div>
                <div class="scientist">
                    <h1>Scientist</h1>
                    <span>Anrico Fermi</span>
                </div>
            </div>
        </li>
    </ul>
</section>

<script>
var items = document.querySelectorAll(".timeline li");

function isElementInViewport(el) {
  var rect = el.getBoundingClientRect();
  return (
    rect.top >= 0 &&
    rect.left >= 0 &&
    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
    rect.right <= (window.innerWidth || document.documentElement.clientWidth)
  );
}

function callbackFunc() {
  for (var i = 0; i < items.length; i++) {
    if (isElementInViewport(items[i])) {
      if(!items[i].classList.contains("in-view")){
        items[i].classList.add("in-view");
      }
    } else if(items[i].classList.contains("in-view")) {
        items[i].classList.remove("in-view");
    }
  }
}
 
window.addEventListener("load", callbackFunc);
window.addEventListener("scroll", callbackFunc);
</script>

资源出处:https://www.moyublog.com/codes/9457.html

关注微信