vue左右两侧时间轴

在这里插入图片描述

<template>
  <div class="course">
    <div class="time-line" v-for="(item, index) in list" :key="index" :class="!item.show ? 'hidden-time-line' : ''">
      <div class="item-border">
        <div class="line-item">
          <div class="time-div">
            <span class="time-span">{{ item.time }}</span>
          </div>
          <div class="time-con" v-if="item.show">
            <p class="title">{{ item.address }}</p>
            <p class="doc">{{ item.doc }}}</p>
            <img class="line-img" :src="require(`../../../assets/images/about/${item.img}.png`)" alt="">
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Course',
  data() {
    return {
      list: [
        { show: true, time: '2016年', address: '以鼎 · 北京', doc: '成立技术研发总部,位于北京CBD核心区域', img: 'tec' },
        { show: true, time: '2018年', address: '以鼎 · 上海', doc: '成立大型行业研究及商务中心', img: 'tec' },
        { show: true, time: '2018年', address: '以鼎 · 南通', doc: '成立国家级硬件开发实验室', img: 'tec' },
        { show: true, time: '2018年', address: '以鼎 · 上海', doc: '正式成立,致力于工业互联网及量子物理行业应用', img: 'tec' },
        { show: true, time: '2021年', address: '“以鼎人”仍在创造辉煌', doc: '成立技术研发总部,位于北京CBD核心区域', img: 'tec' },
        { show: false, time: '未来无限可能', address: '', doc: '', img: '' },
      ]
    }
  }
}
</script>

<style lang="scss" scoped>
.course {
  width: 100%;
  padding: 8rem 41rem;
  .time-line {
    width: 100%;
    margin: auto;
    height: 32.6rem;
    position: relative;
    &:nth-child(odd) {
      .item-border {
        position: absolute;
        left: 0;
        border-top: 0.1rem solid #1B91FF;
        border-right: 0.1rem solid #1B91FF;
        .line-item {
          .time-div {
            position: absolute;
            right: -19.25rem;
            top: 1.5rem;
          }
          .time-con {
            text-align: right;
          }
        }
      }
    }
    &:nth-child(even) {
      .item-border {
        position: absolute;
        right: 0;
        border-top: 0.1rem solid #1B91FF;
        border-left: 0.1rem solid #1B91FF;
        .line-item {
          position: absolute;
          right: 0;
          .time-div {
            position: absolute;
            left: -19.25rem;
            top: 1.5rem;
          }
          .time-con {
            text-align: left;
          }
        }
      }
    }
    .item-border {
      width: 55rem;
      height: 100%;
      .line-item {
        width: 43rem;
        height: 100%;
        background: #F1F1F1;
        position: absolute;
        top: -3rem;
        padding: 2rem 2.9rem;
        .time-div {
          width: calc(13.5rem + 1.7rem);
          height: 3.1rem;
          background: #ffffff;
          .time-span {
            display: inline-block;
            width: 13.5rem;
            height: 3.1rem;
            border-radius: 2rem;
            color: #ffffff;
            text-align: center;
            line-height: 3.1rem;
            margin: auto;
            background: linear-gradient(90deg, #206cff, #34d1fd);
            font-size: 1.8rem;
          }
        }
        .time-con {
          .title {
            font-size: 2rem;
            color: #333333;
            font-weight: bold;
          }
          .doc {
            font-size: 1.4rem;
            color: #666666;
            margin: 1.8rem 0;
          }
          .line-img {
            width: 37rem;
            height: 21rem;
            border-radius: 1rem;
          }
        }
      }
    }
  }
  .hidden-time-line {
    height: 3rem;
    & .item-border {
      border: none !important;
      .line-item {
        background: #ffffff;
      }
    }
  }
}
</style>


  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue3 Timeline 时间线实现会拐弯的时间轴相对于普通的时间线来说更加有趣和独特。在实现这种时间轴时,我们可以使用 Vue3 的组件化开发方式来创建一个可重复使用的时间线组件。 首先,我们需要创建一个 TimeNode(时间节点)组件,用来表示每个时间点。我们可以为每个节点设置一个时间和一个事件描述。时间节点可以通过计算属性或者接收传递的属性来设定其位置。 接下来,在时间线组件中,我们需要创建一个数组来存储时间节点。我们可以使用 v-for 指令来遍历这个数组,并将每个时间节点渲染到视图中。 然后,我们可以使用 CSS 来为时间节点添加样式,使其能够正确地显示出拐弯的效果。我们可以为时间节点设置不同的样式类,然后在 CSS 中定义这些样式类的样式规则,来实现时间轴的拐弯效果。 最后,我们可以根据时间节点的数量和位置,计算出时间轴的长度和位置,然后通过 CSS 来设置时间轴的样式,使其正确地显示出拐弯的时间轴效果。 通过以上的步骤,我们就可以实现一个拐弯的时间轴组件。这个组件可以根据需要接收传递的属性,可以根据时间节点的数量和位置来自动计算出时间轴的样式,使其能够正确地显示出拐弯的效果。 总之,Vue3 Timeline 时间线实现会拐弯的时间轴,通过使用 Vue3 的组件化开发方式,结合计算属性、遍历数组、添加样式和计算位置等技巧,可以比较容易地实现出一个有趣和独特的时间轴组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值