2019-12-03 vue中竖形时间轴(左右两侧都有字)实现 css

html-css099

2019-12-03 vue中竖形时间轴(左右两侧都有字)实现 css,第1张

实现效果:

在dialog弹出框中实现竖形时间轴,如上图,难点在于左侧的时间和圆点要根据右侧的内容的长度来定位,可根据固定宽度,根据长度/宽度来计算几行,来确定具体的位置。

下面的实现不是上述原理,是规定数据格式,用css样式实现的

数据格式:

detailContent: [

{ code: '已审核待审批 ', des: ' 2019-11-18 09:44', name: 'zhangsan-张三',

detailContents: [

{ code: '审核结论:', des: '0-给付或部分给付' },

{ code: '给付类型:', des: '01-协议给付;' },

{ code: '原因明细:', des: '与出险人协商结果;' },

{ code: '特殊备注:', des: '无;' },

{ code: '案件标识:', des: '11-普通案件;' },

{ code: '审核意见:', des: '根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据' }

] },

{ code: '已立案待审核 ', des: ' 2019-11-18 09:44', name: 'wangwu-王五',

detailContents: [

{ code: '立案结论:', des: '01-立案通过' }

] },

{ code: '审核回退立案 ', des: '2019-11-18 09:44', name: 'zhangsan-张三',

detailContents: [

{ code: '审核结论:', des: 'a-案件回退' },

{ code: '回退原因:', des: '03-受益人身份确认有误或待完善' },

{ code: '特殊备注:', des: '此为重大问题;' },

{ code: '案件标识:', des: '11-普通案件;' },

{ code: '审核意见:', des: '根据根原因根据XXX' }

] },

{ code: '审批回退审核 ', des: '2019-11-18 09:44', name: 'wangwu-王五',

detailContents: [

{ code: '审批结论:', des: '1-不同意' },

{ code: '不同意原因:', des: '05-索赔文件所示事故非有效期限范围;' },

{ code: '不同意依据:', des: '金额理算不正确,烦请确认;' },

{ code: '审批意见:', des: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' }

] },

{ code: '已审核待审批 ', des: '2019-11-18 09:44', name: 'zhangsan-张三',

detailContents: [

{ code: '审核结论:', des: '1-全部拒付' },

{ code: '拒付原因:', des: '03-不如实告知;' },

{ code: '拒付依据:', des: '身份信息虚报;' },

{ code: '特殊备注:', des: '此为重大问题;' },

{ code: '案件标识:', des: '11-普通案件;' },

{ code: '审批意见:', des: '根据根原因根据XXX' }

] },

{ code: '审批回退审核 ', des: '2019-11-18 09:44', name: 'wangwu-王五',

detailContents: [

{ code: '审批结论:', des: '1-不同意' },

{ code: '不同意原因:', des: '05-索赔文件所示事故非有效期限范围;' },

{ code: '不同意依据:', des: '金额理算不正确,烦请确认;' },

{ code: '审批意见:', des: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' }

] },

{ code: '已审核待审批 ', des: '2019-11-18 09:44', name: 'zhangsan-张三',

detailContents: [

{ code: '审核结论:', des: '0-给付或部分给付' },

{ code: '给付类型:', des: '01-协议给付;' },

{ code: '原因明细:', des: '与出险人协商结果;' },

{ code: '特殊备注:', des: '无;' },

{ code: '案件标识:', des: '11-普通案件;' },

{ code: '审核意见:', des: '根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据根原因根据' }

] },

{ code: '已立案待审核 ', des: '2019-11-18 09:44', name: 'zhangsan-张三',

detailContents: [

{ code: '立案结论:', des: '01-立案通过' }

] },

{ code: '已报案待立案 ', des: '2019-11-18 09:44', name: 'zhangsan-张三' }

]

HTML:

<div class="main">

<ul class="cbp_tmtimeline">

<li>

  <div v-for="(item, index) in detailContent" :key="index" :class="{'cbp_div': index === (detailContent.length - 1)}">

<div class="cbp_left">

<span>{{item.code}}</span>

<span>{{item.des}}</span>

</div>

<div class="cbp_tmlabel">

<h3>zhangsan-张三</h3>

<div class="cbp_tmicon"></div>

<div v-for="(item, index) in item.detailContents" :key="index" >

<span>{{item.code}}</span>

<span>{{item.des}}</span>

</div>

</div>

</div>

</li>

</ul>

</div>

style样式:

<style>

.cbp_div {

height: 20px

width:570px

}

.cbp_left {

width: 120px

color: black

font-size: 1.2em

font-weight: 300

line-height: 1.4

margin-bottom: -60px

}

.main

{

width: 90%

max-width: 69em

margin: 0 auto

padding: 0 1.875em 3.125em 1.875em

}

.cbp_tmtimeline

{

width: 570px

margin: 40px 0 0 0

padding: 0

list-style: none

position: relative

}

/* The line */

.cbp_tmtimeline:before

{

content: ''

position: absolute

top: 0

bottom: 0

width: 3px

background: #b8cad6

left: 25%

margin-left: -11px

}

.cbp_tmtimeline >li

{

position: relative

}

.cbp_tmtimeline >li .cbp_tmlabel

{

margin: -65px 0 15px 25%

color: black

padding: 0 1em

font-size: 1.2em

position: relative

border-radius: 5px

}

.cbp_tmtimeline >li .cbp_tmicon

{

width: 18px

height: 18px

font-family: 'ecoico'

font-style: normal

font-weight: normal

font-variant: normal

position: absolute

color: #fff

background: #46a4da

border-radius: 50%

box-shadow: 0 0 0 3px #afdcf8

left: 26%

top: 0

margin: 0 0 0 -130px

}

</style>

说明:element UI带有时间轴插件(el-timeline),但是只显示无法实现折叠展开功能且比较单一,不满足要求,故重新封装一个; 最终效果: 实现过程:         dom:使用无序标签li 给定title作为时间显示容器:点击时可展开或折叠 使用button标签 ,下面内容部分使用slot传入(里面内容不固定,方便组件复用),嵌套在el-collapse-transition 中以优化动画效果;         js:数据:属性传入dataList:数组,每一项格式为{time:'2019-12-22',content:{},active:false}    时间标题点击事件selectMenu(arr, index)  arr:该方法修改对应时间下内容是否显示;         css:这里需要注意的是时间轴的线不能断,所以li 之间不能有margin 值,左边的线用border-left 生成,时间前面的点使用 i 标签生成,用相对定位且相对左边给一个负的left值,与标题不能换行且要有宽高使用inline-block

新建一个网页文件,绘制一个层,然后在层中插入一幅图片,并在层上单击鼠标右键,选择“添加到时间轴”选项

如果你的系统没有打开时间轴面板,可以执行“窗口/时间轴”菜单命令,打开时间轴面板, 将层添加到时间轴以后,会自动在层中显示一段蓝色的矩形块。拖动矩形块前后的两个白色圆点,可以改变时间轴的长度,也可以直接在图3中所示的红色框中输入帧的数值,Fps为帧频速率。

选中图层,然后执行“修改/时间轴/录制层路径”菜单命令,系统会自动记录下我们拖动层时的运动轨迹。好了,现在选中时间轴中的后面一个关键帧,在页面中拖动层,系统会记录下层的运动轨迹,并在时间轴中适时添加关键帧。

如果选中“自动播放”和“循环”选项,在打开网页时会自动播放时间轴动画。保存文件,然后按下F12键预览一下效果吧!

综述:

通过对Dreamweaver8的新功能的了解,相信你会有理由去升级自己的Dreamweaver,因为在设计网页的过程中它确实给我们带来了极大的便利,实现了新的飞跃,无论是功能还是性能都获得了重大的改进,使我们不仅能为网络和移动设备创建及发布更具表现力、更引人注目的内容,而且效率更高,所用的时间更少。