IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 仅用css实现时间轴(动画版) -> 正文阅读

[移动开发]仅用css实现时间轴(动画版)

前言

提到时间轴,相信大家都知道时间轴可以系统、完整的记录某一领域的发展足迹和详细事迹,依据时间顺序,把一方面或多方面的事件串联起来,形成相对完整的记录体系,再运用图文的形式呈现给用户。恰好最近刚做完一个关于时间轴的小模块,下面分享给大家。


源码

-注意:

  1. 每次添加事件要调整标签中top的距离,每次递增;
  2. 每次添加事件要调整动画的时长,呈现均衡的效果;
  3. 每次添加事件要增加竖线的高度,根据自己需求而定。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>时间轴</title>
</head>

<body>
    <!-- 最外层的盒子 -->
    <div class="outerBox">
        <!-- 第一大块 -->
        <!-- 左边整体的内容 -->
        <div class="dateBox">
            <h2>2021/12/31</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容事件的详细内容事件的详细内容事件的详细内容事件的详细内容</ul>
            </div>
        </div>
        <!-- 右边整体的内容 -->
        <div class="dateLeftBox" style="top: 120px;">
            <h2>2021/12/25</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>
        </div>

        <!-- 第二大块 -->
        <!-- 左边整体的内容 -->
        <div class="dateBox" style="top: 240px;">
            <h2>2021/12/23</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>

        </div>
        <!-- 右边整体的内容 -->
        <div class="dateLeftBox" style="top: 360px;">
            <h2>2021/12/13</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>
        </div>

        <!-- 第三大块 -->
        <!-- 左边整体的内容 -->
        <div class="dateBox" style="top: 480px;">
            <h2>2020/12/23</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>

        </div>
        <!-- 右边整体的内容 -->
        <div class="dateLeftBox" style="top: 600px;">
            <h2>2020/05/14</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>
        </div>

        <!-- 第四大块 -->
        <!-- 左边整体的内容 -->
        <div class="dateBox" style="top: 720px;">
            <h2>2020/12/23</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>

        </div>
        <!-- 右边整体的内容 -->
        <div class="dateLeftBox" style="top: 840px;">
            <h2>2020/05/14</h2>
            <div>
                <p>发生的事件</p>
                <ul>事件的详细内容</ul>
            </div>
        </div>
    </div>
</body>
<style>
    * {
        padding: 0;
        margin: 0;
    }

    .outerBox {
        /* 竖线样式 高度根据事件的多少调整*/
        width: 5px;
        height: 900px;
        background: rgb(221, 221, 221);
        margin: 40px auto;
        position: relative;
        -webkit-animation: heightSlide 2s linear;
    }

    @-webkit-keyframes heightSlide {

        /* 竖线的动画效果:以百分比来规定改变发生的时间,0% 是动画的开始时间,100% 动画的结束时间 */
        0% {
            height: 0;
        }

        100% {
            height: 900px;
        }
    }

    .outerBox:after {
        /* 竖线末尾文字样式 */
        content: '未完待续...';
        width: 100px;
        color: rgb(84, 84, 85);
        position: absolute;
        margin-left: -47px;
        text-align: center;
        bottom: -30px;
        -webkit-animation: showIn 5.5s ease;
    }

    .outerBox .dateBox,
    .outerBox .dateLeftBox {
        /* 球球的样式 */
        position: absolute;
        margin-left: -8px;
        margin-top: -10px;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        border: 4px solid rgb(221, 221, 221);
        background: rgb(31, 122, 252);
        -webkit-transition: all 0.5s;
        -webkit-animation: showIn ease;
    }

    .outerBox .dateBox:nth-child(1) {
        /* 第一个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 1s;
    }

    .outerBox .dateLeftBox:nth-child(2) {
        /* 第二个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 1.5s;
    }

    .outerBox .dateBox:nth-child(3) {
        /* 第三个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 2s;
    }

    .outerBox .dateLeftBox:nth-child(4) {
        /* 第四个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 2.5s;
    }

    .outerBox .dateBox:nth-child(5) {
        /* 第五个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 3s;
    }

    .outerBox .dateLeftBox:nth-child(6) {
        /* 第六个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 3.5s;
    }

    .outerBox .dateBox:nth-child(7) {
        /* 第七个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 4s;
    }

    .outerBox .dateLeftBox:nth-child(8) {
        /* 第八个事件 设置动画在几秒内完成 */
        -webkit-animation-duration: 4.5s;
    }

    @-webkit-keyframes showIn {

        /* 球球、竖线、左右的模块的动画 */
        0%,
        70% {
            opacity: 0;
        }

        100% {
            opacity: 1;
        }
    }

    .outerBox .dateBox h2,
    .outerBox .dateLeftBox h2 {
        /* 日期的样式 */
        position: absolute;
        margin-left: -120px;
        margin-top: 3px;
        color: rgb(84, 84, 85);
        font-size: 14px;
        cursor: pointer;
        /* -webkit-animation: showIn 3s ease; */
    }

    .outerBox .dateLeftBox h2 {
        /* 右边日期的样式 */
        margin-left: 60px;
        width: 100px;
    }

    .outerBox .dateBox:hover,
    .outerBox .dateLeftBox:hover {
        /* 触摸事件后球球的样式 */
        border: 4px solid rgb(195, 195, 195);
        background: rgb(143, 189, 253);
        box-shadow: 0 0 2px 2px rgba(255, 255, 255, 0.4);
    }

    .outerBox .dateBox div,
    .outerBox .dateLeftBox div {
        /* 左右事件的样式 */
        position: absolute;
        top: 50%;
        margin-top: -15px;
        left: 50px;
        width: 300px;
        height: 21px;
        border: 2px solid rgb(84, 84, 85);
        border-radius: 6px;
        z-index: 2;
        overflow: hidden;
        cursor: pointer;
        /* -webkit-animation: showIn 5s ease; */
        -webkit-transition: all 0.5s;
    }

    .outerBox .dateLeftBox div {
        /* 左边事件的样式 */
        left: -337px;
    }

    .outerBox .dateBox div:hover,
    .outerBox .dateLeftBox div:hover {
        /* 触摸事件后的高度 */
        height: 68px;
    }

    .outerBox .dateBox div p,
    .outerBox .dateLeftBox div p {
        /* 左右事件的字体样式 */
        color: rgb(84, 84, 85);
        font-weight: bold;
        text-align: center;
    }

    .outerBox .dateBox:before,
    .outerBox .dateLeftBox:before {
        /* 右边事件的角标样式 */
        content: '';
        position: absolute;
        top: -3px;
        left: 37px;
        width: 0px;
        height: 0px;
        border: 7px solid transparent;
        border-right: 7px solid rgb(84, 84, 85);
        z-index: -1;
        -webkit-animation: showIn 5s ease;
    }

    .outerBox .dateLeftBox:before {
        /* 左边事件的角标样式 */
        left: -34px;
        border: 7px solid transparent;
        border-left: 7px solid rgb(84, 84, 85);
    }

    .outerBox .dateBox div ul,
    .outerBox .dateLeftBox div ul {
        /* 左右事件触摸展开后内容的样式 */
        list-style: none;
        width: 300px;
        padding: 4px;
        border-top: 2px solid rgb(84, 84, 85);
        color: rgb(84, 84, 85);
        font-size: 14px;
    }
</style>

</html>

实现效果

在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:36:39  更:2022-03-30 18:39:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 3:52:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码