网页中时光轴的简单实现

       时光轴效果如下:


       鼠标滑过当前项时,左侧图标大小变大:


       index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>时光轴</title>
    <style>
        .container {
            width: 800px;
            margin: 50px auto;
        }

        .vertical-timeline {
            color: #FFF;
            font-family: "微软雅黑", "Microsoft YaHei";
        }

        .vertical-timeline-block {
            width: 100%;
            border-left: 2px solid #DDD;
            margin: 0 20px;
            position: relative;
            padding-bottom: 30px;
        }

        /* 时间轴的左侧图标 */
        .vertical-timeline-icon {
            width: 40px;
            height: 40px;
            border-radius: 20px;
            position: absolute;
            left: -22px;
            top: 10px;

            text-align: center;
            line-height: 40px;
            cursor: pointer;
            transition: all 0.2s ease-in;
            -webkit-transition: all 0.2s ease-in;
            -moz-transition: all 0.2s ease-in;
            -o-transition: all 0.2s ease-in;
        }
        .vertical-timeline-block {
            cursor: pointer;
        }
        .vertical-timeline-block:hover .vertical-timeline-icon {
            width: 50px;
            height: 50px;
            border-radius: 25px;
            line-height: 50px;
            left: -27px;
            box-shadow: 0 0 5px #CCC;
            font-size: 25px;
        }

        /* 时间轴的左侧图标的各种样式 */
        .v-timeline-icon1 {
            background-color: #2aabd2;
        }
        .v-timeline-icon2 {
            background-color: #5cb85c;
        }
        .v-timeline-icon3 {
            background-color: #8c8c8c;
        }
        /* 时间轴的左侧图标上的序号*/
        .vertical-timeline-icon i {
            font-style: normal;
            color: #FFF;
        }
        /* 时间轴上的具体内容 */
        .vertical-timeline-content {
            background-color: #5bc0de;
            margin-left: 60px;
            padding: 20px 30px;
            border-radius: 5px;
            position: relative;
        }
        /* 时间轴上的具体内容左侧箭头 */
        .vertical-timeline-content:before {
            content: '';
            width: 0;
            height: 0;

            border-top: 10px solid transparent;
            border-bottom: 10px solid transparent;
            border-right: 10px solid #5bc0de;
            border-left: 10px solid transparent;

            position: absolute;
            right: 100%;
            top: 20px;
        }
        /* 时间轴的具体内容的格式 */
        .timeline-content {
            text-indent: 2em;
        }
        .time-more {
            overflow: hidden;
        }
        .time-more .time {
            float: left;
            line-height: 40px;
            display: inline-block;
        }
        .time-more .more {
            float: right;
        }
        .time-more .more a {
            display: inline-block;
            height: 20px;
            padding: 8px 15px;
            color: #FFF;
            text-decoration: none;
            font-size: 15px;
        }
        /* “更多信息”的风格 */
        .more-style1 {
            border-radius: 5px;
            background-color: #565656;
        }
        .more-style1:hover {
            background-color: #696969;
        }
        .more-style2 {
            border-radius: 5px;
            background-color: #1AB394;
        }
        .more-style2:hover {
            background-color: #18A689;
        }

        .more-style3 {
            border-radius: 5px;
            background-color: #1C84C6;
        }
        .more-style3:hover {
            background-color: #1A7BB9;
        }

    </style>
</head>
<body>
    <div class="container">
        <div class="vertical-timeline">
            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">1</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style1"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">2</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点2</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style2"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">3</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点3</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style3"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">4</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">5</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">6</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

       下面为 时光轴左侧添加 “标题”,如:



       index2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>时光轴</title>
    <style>
        .container {
            width: 800px;
            margin: 50px auto;
        }

        .vertical-timeline {
            color: #FFF;
            font-family: "微软雅黑", "Microsoft YaHei";
            position: relative;
        }

        .vertical-timeline-block {
            width: 100%;
            border-left: 2px solid #DDD;
            margin: 0 20px;
            position: relative;
            padding-bottom: 30px;

            cursor: pointer;
        }

        /* 时间轴的左侧图标 */
        .vertical-timeline-icon {
            width: 40px;
            height: 40px;
            border-radius: 20px;
            position: absolute;
            left: -22px;
            top: 10px;

            text-align: center;
            line-height: 40px;
            cursor: pointer;
            transition: all 0.2s ease-in;
            -webkit-transition: all 0.2s ease-in;
            -moz-transition: all 0.2s ease-in;
            -o-transition: all 0.2s ease-in;
        }

        .vertical-timeline-block:hover .vertical-timeline-icon {
            width: 50px;
            height: 50px;
            border-radius: 25px;
            line-height: 50px;
            left: -27px;
            box-shadow: 0 0 5px #CCC;
            font-size: 25px;
        }

        /* 时间轴的左侧图标的各种样式 */
        .v-timeline-icon1 {
            background-color: #2aabd2;
        }
        .v-timeline-icon2 {
            background-color: #5cb85c;
        }
        .v-timeline-icon3 {
            background-color: #8c8c8c;
        }
        /* 时间轴的左侧图标上的序号*/
        .vertical-timeline-icon i {
            font-style: normal;
            color: #FFF;
        }
        /* 时间轴上的具体内容 */
        .vertical-timeline-content {
            background-color: #5bc0de;
            margin-left: 60px;
            padding: 20px 30px;
            border-radius: 5px;
            position: relative;
        }
        /* 时间轴上的具体内容左侧箭头 */
        .vertical-timeline-content:before {
            content: '';
            width: 0;
            height: 0;

            border-top: 10px solid transparent;
            border-bottom: 10px solid transparent;
            border-right: 10px solid #5bc0de;
            border-left: 10px solid transparent;

            position: absolute;
            right: 100%;
            top: 20px;
        }
        /* 时间轴的具体内容的格式 */
        .timeline-content {
            text-indent: 2em;
        }
        .time-more {
            overflow: hidden;
        }
        .time-more .time {
            float: left;
            line-height: 40px;
            display: inline-block;
        }
        .time-more .more {
            float: right;
        }
        .time-more .more a {
            display: inline-block;
            height: 20px;
            padding: 8px 15px;
            color: #FFF;
            text-decoration: none;
            font-size: 15px;
        }
        /* “更多信息”的风格 */
        .more-style1 {
            border-radius: 5px;
            background-color: #565656;
        }
        .more-style1:hover {
            background-color: #696969;
        }
        .more-style2 {
            border-radius: 5px;
            background-color: #1AB394;
        }
        .more-style2:hover {
            background-color: #18A689;
        }

        .more-style3 {
            border-radius: 5px;
            background-color: #1C84C6;
        }
        .more-style3:hover {
            background-color: #1A7BB9;
        }

        .vtb-tit {
            padding: 0 10px;
            height: 50px;
            line-height: 50px;
            text-align: center;

            background-color: #1A7BB9;
            border-radius: 5px;

            position: absolute;
            left: -120px;
            top: 10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="vertical-timeline">
            <div class="vtb-tit">
                总时间点1
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">1</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1<a href="javascript:void(0)" class="del-timeline-block"></a></h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style1"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">2</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点2</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style2"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">3</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点3</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style3"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">4</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">5</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">6</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>
        </div>

        <div class="vertical-timeline">
            <div class="vtb-tit">
                总时间点2
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">1</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style1"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">2</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点2</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style2"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">3</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点3</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style3"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">4</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">5</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">6</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>
        </div>

        <div class="vertical-timeline">
            <div class="vtb-tit">
                总时间点2
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">1</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style1"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">2</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点2</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style2"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">3</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点3</h2>
                    <p class="timeline-content">我去吃了个午饭</p>
                    <p class="time-more">
                        <span class="time">2016/4/30 13:48</span>
                        <span class="more more-style3"><a href="#">更多信息</a></span>
                    </p>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon1">
                    <i class="icon">4</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon2">
                    <i class="icon">5</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>

            <div class="vertical-timeline-block">
                <div class="vertical-timeline-icon v-timeline-icon3">
                    <i class="icon">6</i>
                </div>

                <div class="vertical-timeline-content">
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                    <h2>时间点1</h2>
                </div>
            </div>
        </div>
    </div>
</body>
</html>



  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时光轴是一种将历史事件按时间线展示的方式。在Flutter,可以通过使用ListView和Card来实现一个简单时光轴。以下是一个示例: 1. 创建一个Flutter应用程序并打开main.dart文件。 2. 导入material.dart库并创建一个StatelessWidget。 ```dart import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Timeline App', home: TimelinePage(), ); } } ``` 3. 创建一个StatefulWidget并实现它的build方法。在build方法,使用ListView和Card来展示历史事件。 ```dart class TimelinePage extends StatefulWidget { @override _TimelinePageState createState() => _TimelinePageState(); } class _TimelinePageState extends State<TimelinePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Timeline'), ), body: ListView( children: <Widget>[ _buildEventCard('Event 1', 'Description 1', 'date 1'), _buildEventCard('Event 2', 'Description 2', 'date 2'), _buildEventCard('Event 3', 'Description 3', 'date 3'), _buildEventCard('Event 4', 'Description 4', 'date 4'), _buildEventCard('Event 5', 'Description 5', 'date 5'), _buildEventCard('Event 6', 'Description 6', 'date 6'), _buildEventCard('Event 7', 'Description 7', 'date 7'), ], ), ); } Widget _buildEventCard(String title, String description, String date) { return Card( child: ListTile( title: Text(title), subtitle: Text(description), trailing: Text(date), ), ); } } ``` 4. 运行应用程序并查看时光轴。您可以根据需要添加更多事件卡片。 这是一个基本的时光实现。您可以根据需要定制卡片颜色、添加图像等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值