jQuery创建动画折线时间轴

  • 源码大小:6.73KB
  • 所需积分:1积分
  • 源码编号:19JP-3615
  • 浏览次数:467次
  • 最后更新:2023年07月02日
  • 所属栏目:图表
本站默认解压密码:19jp.com 或 19jp_com

简介

将各种事物的图形时间线放在一起,可以形成一个很棒的视觉效果。一个好的时间线可以帮助讲述时间线的故事,并让观众处于那个时刻或情况。

在本文中,我们将使用jQuery和HTML/CSS创建一个折线时间线,用户可以通过单击多边形链中的顶点在事件和事件细节之间切换。

这种类型的时间线中的视觉方面真的很突出&真的可以帮助您将数据变为现实!

请参阅实际操作:

如何使用它:

1.为折线时间线构建HTML。

<div class="line-timeline">
  <div class="spandiv">
    <span id="timeline1"class="active-timeline"></span>
    <span id="timeline2"></span>
    <span id="timeline3"></span>
    <span id="timeline4"></span>
    <span id="timeline5"></span>
    <span id="timeline6"></span>
  </div>
  <div class="dem dem1"></div>
  <div class="dem dem2"></div>
</div>

2.将您自己的事件添加到时间线上。

<div class="content-timeline">
  <p class="active-content-timeline">
    Event 1 Active
  </p>
  <p>
    Event 2 
  </p>
  <p>
    Event 3 
  </p>
  <p>
    Event 4 
  </p>
  <p>
    Event 5
  </p>
  <p>
    Event 6
  </p>
</div>

3.时间线的主要CSS。

/* timeline css */
.line-timeline {
  position: relative;
}

.line-timeline div.spandiv {
  width: 100%;
  height: 300px;
  position: relative;
}

.dem {
  position: absolute;
  width: 96%;
  height: 150px;
  margin: auto;
  left: 0;
  right: 0;
}

.dem1 {
  top: 0;
  border-top: 4px solid #ffffff;
  border-left: 4px solid #ffffff;
  border-bottom: 4px solid #ffffff;
}

.dem2 {
  top: 150px;
  border-right: 4px solid #ffffff;
  border-bottom: 4px solid #ffffff;
}

.line-timeline div.spandiv span {
  position: absolute;
  width: 30px;
  height: 30px;
  background: white;
  border-radius: 50px;
  border: 8px solid #525050;
  z-index: 2;
  cursor: pointer;
  transition: .3s ease-out;
}

.line-timeline div.spandiv span#timeline1 {
  right: -10px;
  top: -13px;
}

.line-timeline div.spandiv span#timeline2 {
  left: -10px;
  top: -13px;
}

.line-timeline div.spandiv span#timeline3 {
  left: -10px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.line-timeline div.spandiv span#timeline4 {
  right: -10px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.line-timeline div.spandiv span#timeline5 {
  right: -10px;
  bottom: -13px;
}

.line-timeline div.spandiv span#timeline6 {
  left: -14px;
  bottom: -13px;
}

.line-timeline div.spandiv span:hover {
  background: black;
  border: 11px solid white;
}

.line-timeline div.spandiv span.active-timeline {
  background: black;
  border: 11px solid white;
}


/* timeline content css */
.content-timeline {
  color: white;
  text-align: justify;
  line-height: 2;
  font-size: 19px;
  padding: 25px;
  position: relative;
}

.content-timeline p {
  opacity: 0;
  visibility: hidden;
  transition: .3s ease-in-out;
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  padding: 15px;
}

.content-timeline p.active-content-timeline {
  opacity: 1;
  visibility: visible;
}

4.在文档中加载必要的jQuery JavaScript库。

<script src="/path/to/cdn/jquery.min.js"></script>

5.用于激活折线时间线的主脚本。

$(document).ready(function () {

  var timelineSpan = $(".line-timeline").find("span");
  var contentTimeline = $(".content-timeline").find("p");

  timelineSpan.click(function () {
    var indexSpan = $(this).index();
    contentTimeline.removeClass("active-content-timeline");
    setTimeout(function () {
      contentTimeline.eq(indexSpan).addClass("active-content-timeline");
    }, 600)
    timelineSpan.removeClass("active-timeline");
    $(this).addClass("active-timeline");
    console.log($(this).index());
  });

  var timerTimeline = setInterval(autoTimeline, 3000);
  $('.timeline').hover(function (ev) {
    clearInterval(timerTimeline);
  }, function (ev) {
    timerTimeline = setInterval(autoTimeline, 3000);
  });

  function autoTimeline() {
    if ($("#timeline6").hasClass("active-timeline")) {
      timelineSpan.removeClass("active-timeline");
      contentTimeline.removeClass("active-content-timeline");
      timelineSpan.eq(0).addClass("active-timeline");
      contentTimeline.eq(0).addClass("active-content-timeline");

    } else {
      var indexSpanActive = $(".line-timeline").find(".active-timeline").index();
      var indexContentTimelineActive = $(".content-timeline").find(".active-content-timeline").index();

      timelineSpan.removeClass("active-timeline");
      contentTimeline.removeClass("active-content-timeline");

      timelineSpan.eq(indexSpanActive + 1).addClass("active-timeline");
      contentTimeline.eq(indexContentTimelineActive + 1).addClass("active-content-timeline");
    }
  }

})

预览截图