php+bootstrap 编写简易的步骤进度条

个人笔记记录,步骤进度条。

版本一:

初始版本,
当前版本单纯的根据bootstrap+CSS进行完成的简易版本。这个比较简单
样式我放在了最底下。
在这里插入图片描述

  <div class="form-group steps"><div class="steps-height"><div class="step-line step-completed"></div><div class="step step-completed"><div class="step-text">1</div><div class="step-main"><p>1.立项信息</p><p>1.立项信息</p><p>1.立项信息</p><p>1.立项信息</p><p>1.立项信息</p></div></div><div class="step-line step-completed"></div></div><div class="steps-height"><div class="step-line "></div><div class="step"><div class="step-text">2</div><div class="step-main">2.项目成员</div></div><div class="step-line "></div></div><div class="steps-height"><div class="step-line"> </div><div class="step "><div class="step-text">3</div><div class="step-main">3.合作单位</div></div><div class="step-line "></div></div><div class="steps-height"><div class="step-line"> </div><div class="step"><div class="step-text">4</div><div class="step-main">4.项目预算</div></div><div class="step-line "></div></div><div class="steps-height"><div class="step-line"> </div><div class="step"><div class="step-text">5</div><div class="step-main">5.项目文档</div></div><div class="step-line "></div></div><div class="steps-height"><div class="step-line"></div><div class="step"><div class="step-text">6</div><div class="step-main">6.完成登记</div></div><div class="step-line"></div></div></div>

版本二

这个版本加入了php,从数据库读取内容。然后加载到前端。
框架用的是thinkphp。

从数据库进行加载内容

    <div class="form-group steps">{volist name="steps" id="step"  key="k"}<div class="steps-height"><div class="step-line  step-completed"></div><div class="step step-completed"><div class="step-text">{$k}</div><div class="step-main"><p>{$k}.{$step.name}</p><p>数量:{$step.number}</p>
<!--                    <div>2.项目成员</div>--></div></div><div class="step-line  step-completed"></div></div>{/volist}</div>
    public function index(){//设置过滤方法$this->request->filter(['strip_tags', 'trim']);$todayStart = date('Y-m-d 00:00:00'); // 今天开始的时间戳$todayEnd = date('Y-m-d 23:59:59');   // 今天结束的时间戳//获取当前日期的步骤栏$steps =Db::name("step")->where('createtime', '>=', $todayStart)->where('createtime', '<=', $todayEnd)->select();// 将数据传递给视图$this->assign('steps', $steps);return $this->view->fetch();}

版本3

这个版本比较完善了。根据下拉框,进行刷新需要的步骤进度条。
并且步骤条通过 js 进行动态生成。


<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><link href="steps.css" rel="stylesheet" /><link rel="stylesheet" href="__CDN__/assets/libs/steps/steps.css">
</head>
<body>
<div class="panel panel-default panel-intro"><div  class="form-group"><form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""><div class="form-group"><label class="control-label col-xs-12 col-sm-2">下拉框:</label><div class="col-xs-12 col-sm-8"><select  id="c-fi_Sub" data-rule="required" class="form-control" name="row[title]"><!--   <option value="0" >请选择状态</option>--></select></div></div></form></div><div class="form-group steps">
<!--        步骤条位置--></div>
</div></body>
</html>

js

//获取 步骤条内容function steps(rc_name){Fast.api.ajax({url: 'step/step/select_step',data: {rc_name: rc_name},}, function (data, ret) {//清楚 容器上的内容$('.steps').empty();//通过foreach构造 div$.each(data.html, function(index, step) {//创建divvar stepDiv = $('<div></div>').addClass('steps-height');var lineDiv=$('<div></div>').addClass('step-line  step-completed');var completed=$('<div></div>').addClass('step step-completed');var lineDiv2=$('<div></div>').addClass('step-line  step-completed');// ... 根据 step 对象创建 DOM 元素并添加到 stepDiv 中completed.append('<div class="step-text">' + (index+1) + '</div>');completed.append('<div class="step-main"><p>' + (index+1) + ' . '+ step.pi_name + '</p><p>数量:' + step.number + '</p></div>');stepDiv.append(lineDiv);stepDiv.append(completed);stepDiv.append(lineDiv2);// 将创建好的 stepDiv 添加到页面上$('.steps').append(stepDiv); // 将步骤添加到 .steps 容器中});return false;}, function (data, ret) {alert(ret.msg);return false;});}
			//加载成功时刷新下拉框$(document).ready(function() {Fast.api.ajax({url: 'step/step/select_rc_name',data: {},}, function (data, ret) {//将内容挂到下拉选择框$("#c-fi_Sub").html(data.html);// 获取选中的idvar rc_name = $("#c-fi_Sub").val();//刷新步骤条steps(rc_name);return false;}, function (data, ret) {alert(ret.msg);return false;});});//选择下拉框时$(document).on("change", "#c-fi_Sub", function () {// 获取选中的idvar rc_name = $("#c-fi_Sub").val();//刷新步骤条steps(rc_name);});

以下就是样式了。不是很难的内容

.steps {/*position: relative;*//*padding: 25px 0 25px 20px;*/position: relative;display: flex;flex-wrap: wrap; /* 允许子元素换行 */align-items: flex-start; /* 垂直居中对齐子元素 */padding: 25px 0 25px 20px;
}.step,
.step-line {float: left;
}
.steps-height{height: 150px;
}
.step {display: block;width: 21px;height: 21px;border-radius: 50%;line-height: 21px;text-align: center;/*font-size: 15px;*/border: 1px solid #cdcdcd;background: #cdcdcd;font: 16px Helvetica Neue,Helvetica,PingFang SC,微软雅黑,Tahoma,Arial,sans-serif;
}.step-line {width: 50px;position: relative;top: 9px;height: 5px;background-color: #cdcdcd;/*display: none; !* 如果不需要线连接每个步骤,可以隐藏它 *!*//* 如果需要线,则需要重新设计其显示方式,因为flex布局下自动换行会打破线的连续性 */
}
.step-text {font-size: 15px;color: #fff;background-color: #cdcdcd;border-radius: 50%;width: 21px;height: 21px;line-height: 21px;text-align: center;margin-bottom: 5px; /* 与下面的文本保持一定距离 */}.step-main {font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif;text-align: center;color: #313131;margin-top: 8px; /* 适当的间距 */
}
.step-completed .step-text {background: #327ab7;border-color: #327ab7;
}
.step-completed .step-main {/* 如果需要,可以添加特定于已完成步骤的样式 */
}/* 如果需要,可以为第一个步骤添加特殊处理,例如没有线条 */
.step:first-child::after {display: none;
}.step::before {content: '';position: absolute;top: 50%;left: -40px; /* 线条从步骤的左侧开始 */width: 30px; /* 线条的长度 */height: 2px; /* 线条的粗细 */background-color: #cdcdcd;transform: translateY(-50%); /* 垂直居中线条 */
}.step-main {font: 14px Helvetica Neue,Helvetica,PingFang SC,微软雅黑,Tahoma,Arial,sans-serif;padding: 8px 0;display: block;width: 80px;text-align: center;position: relative;left: -34px;color: #313131;
}.steps > .step-completed {background: #327ab7;border-color: #327ab7;
}/*.step-completed > .step-main {color: #2f318e;
}*/.step-completed > .step-circle {background-color: #2f318e;
}.step-completed.step-line {background-color: #327ab7;
}
/* 响应式设计,可以根据需要调整 */
@media (max-width: 600px) {/*.step {*//*    width: 50px; !* 在小屏幕上减小步骤宽度 *!*//*    margin-right: 10px; !* 减小间距 *!*//*}*/.step-text {font-size: 12px; /* 减小文本大小以适应小屏幕 */}.step-main {font-size: 12px; /* 同样减小主文本大小 */}.steps-height{height: 50px;}/*.step {*//*    margin-right: 15px; !* 减小间距以适应小屏幕 *!*//*    min-width: 40px; !* 减小最小宽度 *!*//*}*/.step::before {left: -20px; /* 减小线条的起始位置 */width: 15px; /* 减小线条的长度 */}
}/* 假设你在步骤中添加了一个 p 标签 */
.step p {/* 这里的样式将控制 p 标签的显示,它会自动增加 .step 的高度 */margin: 4px 0; /* 适当的间距 */font-size: 14px; /* 或其他适当的字体大小 */
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3268467.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ScriptableObject使用

资料 Scripting/Create modular game architecture in Unity with ScriptableObjects 脚本文档 基础 SO是一个Unity对象&#xff0c;继承UnityEngine.Objec&#xff0c; SO最大的特点是实例文件可共享&#xff0c;有点类似静态数据&#xff0c;同一个实例文件可被多个对象引…

【vim】ubuntu20-server 安装配置 vim 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】ubuntu20-server 安装配置 vim 最新最详细 开发环境一、vim github二、安装必…

Linux系统下非root用户自行安装的命令切换为root权限时无法使用,提示comman not found解决办法

今天在开发的时候遇上了一个问题就是要去我们数据平台中进行数据的提取&#xff0c;数据存储用的是minio&#xff0c;一个MinIO部署由一组存储和计算资源组成&#xff0c;运行一个或多个 minio server 节点&#xff0c;共同作为单个对象存储库。独立的MinIO实例由具有单个 mini…

快速入门C#设计模式【2】结构型模式

结构型模式 适配器模式 (Adapter)桥接模式 (Bridge)组合模式 (Composite)装饰模式 (Decorator)外观模式 (Facade)享元模式 (Flyweight)代理模式 (Proxy) 适配器模式&#xff08;Adapter Pattern&#xff09; 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计…

Stable Diffusion 使用详解(3)---- ControlNet

背景 炼丹师在AI绘画的过程中&#xff0c;由于Stable Diffusion的原理是水滴式的扩散作图原理&#xff0c;其实在前面也有提到&#xff0c;他的发挥是‘不稳定’的&#xff0c;因为你没有办法做到精确控制&#xff0c;只能说是大致符合你的预期。你不能总依赖抽卡固定随机数种…

后端采用SpringBoot框架开发的:ADR药物不良反应智能监测系统源码,用于监测和收集药品在使用过程中发生的不良反应的系统

ADR药物不良反应智能监测系统是一套用于监测和收集药品在使用过程中发生的不良反应&#xff08;Adverse Drug Reaction, ADR&#xff09;的系统。该系统基于医院临床数据中心&#xff0c;运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能&#x…

昇思25天学习打卡营第22天|CV-Vision Transformer图像分类

打卡 目录 打卡 ViT简介 模型结构 基于ViT实现ImageNet分类任务 环境准备与数据读取 模型解析 Transformer基本原理 Self-Attention模块 代码实现 Transformer Encoder 代码实现 ViT模型的输入 Patch Embedding代码处理输入 整体构建ViT 模型训练与推理 模型训…

通过ATS软件抓取ios手机日志方法记录

1.ios手机下载描述符文件&#xff0c;用于过检测 下载网址&#xff1a;https://developer.apple.com/bug-reporting/profiles-and-logs/?nameB 点击这个下载&#xff0c;之后在手机通用-VPN与设备管理里面找到刚才下载的描述文件然后安装&#xff1b; 2024.6月后注意会提示描…

能链智电的危与机:持续亏损、股价崩塌,CEO王阳如何寻求出路?

近日&#xff0c;能链智电&#xff08;NASDAQ&#xff1a;NAAS&#xff09;发布未经审计的2024年二季度及上半年财报。数据显示&#xff0c;该公司上半年营收增速稳健&#xff0c;核心充电服务的规模效应得到释放。 能链智电在财报中透露&#xff0c;该公司于6月首度实现了单月…

echarts使用案例

1.配置legend icon 根据点击事件动态更换样式 <template><div ref"chart" style"width: 600px; height: 400px;"></div></template><script>import * as echarts from echarts;export default {name: EchartsExample,data(…

图论理论基础

图论理论基础 | 代码随想录 图的基本概念 二维坐标中&#xff0c;多个点连成的线就构成了图。图也可以是一个节点&#xff0c;甚至没有节点&#xff08;空图&#xff09;。 图的种类 整体上一般分为有向图和无向图。 有向图是指图中边是有方向的&#xff0c;无向图是指图中…

《GPT-4o mini:开启开发与创新的新纪元》

在科技发展的快速进程中&#xff0c;OpenAI 推出的 GPT-4o mini 模型如同一阵春风&#xff0c;给开发者们带来了新的希望和机遇。它以其卓越的性能和极具吸引力的价格&#xff0c;成为了行业内热议的焦点。 当我首次听闻 GPT-4o mini 的消息时&#xff0c;内心充满了好奇与期待…

Pytorch笔记1

建议点赞收藏关注&#xff01;持续更新至pytorch大部分内容更完。 整体框架如下 目录 gpu加速数据数据结构张量TensorVariable 预处理数据增强 模型构建模块组织复杂网络初始化网络参数定义网络层 损失函数创建损失函数设置损失函数超参数选择损失函数 优化器管理模型参数管理…

【ESP32 IDF 软件模拟SPI驱动 W25Q64存储与读取数组】

目录 SPISPI介绍SPI时序代码编写&#xff08;spi&w25q64&#xff09; 代码调试 SPI SPI介绍 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外围设备接口&#xff09;是一种高速、全双工、同步的串行通信总线&#xff0c;常用于微控制器与各种外围设备&…

【React】详解如何获取 DOM 元素

文章目录 一、基础概念1. 什么是DOM&#xff1f;2. 为什么需要获取DOM&#xff1f; 二、使用 ref 获取DOM元素1. 基本概念2. 类组件中的 ref3. 函数组件中的 ref 三、 ref 的进阶用法1. 动态设置 ref2. ref 与函数组件的结合 四、处理特殊情况1. 多个 ref 的处理2. ref 与条件渲…

大数据-49 Redis 缓存问题中 穿透、雪崩、击穿、数据不一致、HotKey、BigKey

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

nginx目录列表美化—rpm安装

目录美化 1. 下载NGINX2. 下载美化工具3. 配置模块4. 主题下载5. 配置文件编写6. 其它问题 1. 下载NGINX RHEL系列的yum源 使用yum源安装如果不能指定版本&#xff0c;请点击跳转nginx的仓库 nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$…

【H.264】H.264详解(二)—— H264视频码流解析示例源码

文章目录 一、前言二、示例源码【1】目录结构【2】Makefile源码【3】h264parser.c源码【4】编译运行【5】源码下载地址 声明&#xff1a;此篇示例源码非原创&#xff0c;原作者雷霄骅。雷霄骅&#xff0c;中国传媒大学通信与信息系统专业博士生&#xff0c;在此向雷霄骅雷神致敬…

【Python机器学习】朴素贝叶斯——条件概率

条件概率 假设现在有一个装了7块石头的罐子&#xff08;3块灰色&#xff0c;4块黑色&#xff09;&#xff0c;如果从中随机取出一块&#xff0c;灰色的可能性就是3/7&#xff0c;黑色的可能性是4/7。我们使用p(gray)来表示取到灰色石头的概率&#xff0c;其概率值可以通过灰色…