更新记录

1.0.3(2025-12-08) 下载此版本

  • 组件内部集成了 scroll-view,支持滚动到指定元素
  • 新增 scrollIntoView 属性,支持自动滚动定位

1.0.2(2023-11-17) 下载此版本

style: dot样式微调

1.0.1(2023-11-06) 下载此版本

文档参数更正

查看更多

平台兼容性

uni-app(4.85)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - -

zero-timeline

一. 插件说明

个人仅测试与vue2,vue3,微信小程序,其他平台请自行测试

二. 使用方法

符合easycom组件模式, 导入 uni_modules 后直接使用即可

基础用法

<template>
    <view class="container">
        <view class="wrap">
            <zero-timeline :dataList='dataList' gap='30px'></zero-timeline>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                dataList:[]
            }
        },
        created(){
            this.init()
        },
        methods: {
            init(){
                for(let i=0;i<10;i++){
                    const obj = {
                        id: `item${i}`, // 唯一标识,用于 scrollIntoView
                        // time: `2023-11-1${i}`,
                        title: `feat:这是标题${i}`,
                        content: `完成功能完成功能完成功能完成功能`,
                        sub: `补充内容`,
                        leftTime:`2023-11-1${i}`,
                        leftTitle: `11月1${i}日`,
                        leftContent: `开始\n|\n结束`,
                        color: '#11998e',
                    }
                    this.dataList.push(obj)
                }
            }
        }
    }
</script>

高级用法 - 滚动定位

<template>
    <view class="container">
        <view class="wrap">
            <zero-timeline 
                :dataList='dataList' 
                gap='30px'
                :scrollIntoView="scrollToId">
            </zero-timeline>
        </view>
        <view class="footer-btns">
            <button @click="scrollToTop">回到顶部</button>
            <button @click="scrollToTarget">滚动到指定位置</button>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                dataList:[],
                scrollToId: ''
            }
        },
        methods: {
            scrollToTop() {
                this.scrollToId = '';
                setTimeout(() => {
                    this.scrollToId = this.dataList[0].id;
                }, 100);
            },
            scrollToTarget() {
                this.scrollToId = '';
                setTimeout(() => {
                    this.scrollToId = 'item5'; // 滚动到 id 为 item5 的元素
                }, 100);
            }
        }
    }
</script>

三. 参数说明

参数 类型 默认值 描述
dataList Array [] 时间线数据列表
showLeft Boolean true 是否显示左边区域
leftWidth String 150rpx 左边区域宽度
gap String 20rpx 每一个item的上下间隔
scrollIntoView String '' 滚动到指定元素的id(需先清空再设置)

四. dataList 参数说明

以下dataList参数均为非必填,根据需求自由组合即可

参数 类型 描述
id String 元素唯一标识(用于scrollIntoView定位,注意:小程序中不能包含连字符)
time String 右侧显示的时间
title String 右侧标题
content String 右侧主要内容
sub String 右侧补充内容
leftTime String 左侧显示的时间
leftTitle String 左侧标题
leftContent String 左侧内容
color String 自定义item颜色

五. 注意事项

  1. scrollIntoView 使用方法:需要先将其设置为空字符串,然后再设置目标 id,才能触发滚动

    this.scrollToId = '';
    setTimeout(() => {
       this.scrollToId = 'targetId';
    }, 100);
  2. 组件高度:组件内部使用了 scroll-view,父容器需要设置固定高度或使用 flex: 1

插件预览: code

小程序搜索: 零技术

预览的小程序不一定能及时更新当前插件

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议