跟随Element学习Vue小技巧(50)——Timeline

3,573 阅读3分钟

就这点程度

还不足以折断我的灵魂

前言

  • 有一天,我看见了四十四次日落!
  • 你知道吗,人在难过的时候就会爱上日落。
  • 在你看了四十四次日落那天,你很难过吗?

你有没有看过日落呢?
又看过多少次?
别难过,也许时间是一种解药
跟随我,一起探索时间的秘密,也许你就不会那么的难过了
(ノ"◑ ◑)ノ"(。•́︿•̀。)

1 Timeline

DOM结构

代码片段

/* 最后一个线条隐藏 */
.el-timeline .el-timeline-item:last-child .el-timeline-item__tail {
    display: none;
}

/* 线条高度撑满盒子 */
.el-timeline-item__tail {
    position: absolute;
    left4px;
    height100%;
    border-left2px solid #e4e7ed;
}

/* 内容区域左侧预留28px */
.el-timeline-item__wrapper {
    position: relative;
    padding-left28px;
    top: -3px;
}

技巧解析

时间线,ul>li列表
列表项最后一个,线条隐藏
线条定位,高度100%,撑满盒子
内容左侧padding为28px,空出位置

原点dot是可以自定义的,有插槽slot

小技巧

DOM反转

代码片段

/*
* this.$slots.default为数组
* this.$slots.default.reverse(),数组反转,时间线倒序
*/
render() {
  const reverse = this.reverse;
  const classes = {
    'el-timeline': true,
    'is-reverse': reverse
  };
  let slots = this.$slots.default || [];
  if (reverse) {
    slots = slots.reverse();
  }
  return (<ul class={ classes }>
    { slots }
  </ul>);
}



二十七岁的我 丝毫不比十五岁的我聪明

参考链接

往期回顾