折叠面板实现,上传文件进度条,三级联选择器,多级联选择器, 利用layui实现
首先贴出html代码
- <form class="layui-form" action="">
- <div class="layui-form-item checkBox">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" title="多选/全选" checked="">
- </div>
- </div>
- <div class="info-edit-cont">
- <div class="info-item">
- <h2 class="info-title clearfix file-progress">
- <div class="layui-form-item checkBox fl">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" checked="">
- </div>
- </div>
- <div class="file-text fl nowrap">
- <i class="icon-file icon-file-file"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <!-- <i class="icon-file icon-file-video"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <i class="icon-file icon-file-music"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <i class="icon-file icon-file-photo"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <i class="icon-file icon-file-td"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span> -->
- </div>
- <div class="progress-cont fl clearfix">
- <div class="fl progress-view layui-progress layui-progress-big" lay-showpercent="true"
- lay-filter="demo">
- <div class="layui-progress-bar layui-bg-color" lay-percent="0%"></div>
- </div>
- <div class="progress-label fr">
- 正在生成
- </div>
- </div>
- <div class="fr handle-view cancelFile">
- 取消上传
- </div>
- </h2>
- <div class="info-item-view">
- <h2 class="info-title clearfix file-edit">
- <div class="layui-form-item checkBox fl">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" checked="">
- </div>
- </div>
- <div class="layui-input-block item-title fl">
- <input class="layui-input title-input" type="text" name="title" value="《管理者的商业逻辑》- 李董出版 20170612" lay-verify="title" autocomplete="off"
- placeholder="请输入文件名称" />
- </div>
- <div class="fr handle-view">
- <i class="showView layui-icon layui-icon-down"></i>
- <i class="deleteView layui-icon layui-icon-delete"></i>
- </div>
- </h2>
- <div class="info-content">
- <div class="layui-form-item">
- <label class="layui-form-label">课程:</label>
- <div class="layui-input-block">
- <input type="text" id="courseSelect" class="layui-input" readonly="readonly" />
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">应用类型:</label>
- <div class="layui-input-block">
- <select name="interest" lay-filter="aihao">
- <option value=""></option>
- <option value="0">写作</option>
- <option value="1">阅读</option>
- <option value="2">游戏</option>
- <option value="3">音乐</option>
- <option value="4">旅行</option>
- </select>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">媒体类型:</label>
- <div class="layui-input-block">
- <select name="interest" lay-filter="aihao">
- <option value=""></option>
- <option value="0">写作</option>
- <option value="1">阅读</option>
- <option value="2">游戏</option>
- <option value="3">音乐</option>
- <option value="4">旅行</option>
- </select>
- </div>
- </div>
- </div>
- <div class="layui-form-item layui-form-text">
- <label class="layui-form-label">资源简介:</label>
- <div class="layui-input-block">
- <textarea placeholder="简要介绍资源内容,适合阅读人群等" class="layui-textarea"></textarea>
- </div>
- </div>
- <div class="layui-form-item layui-form-text">
- <label class="layui-form-label">使用建议:</label>
- <div class="layui-input-block">
- <textarea placeholder="简要说明资源的使用建议" class="layui-textarea"></textarea>
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" title="推荐给学生" checked="">
- <span class="icon-tip">
- ?
- <div id="fileTips" class="fileTips">
- <b class="tip-em"><i class="em1"></i><i class="em2"></i></b>
- <div class="tip-title">
- 推荐给学生的资源,学生登录,系统也可以查看哦!
- </div>
- </div>
- </span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="info-item">
- <h2 class="info-title clearfix file-progress">
- <div class="layui-form-item checkBox fl">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" checked="">
- </div>
- </div>
- <div class="file-text fl nowrap">
- <!-- <i class="icon-file icon-file-file"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span> -->
- <i class="icon-file icon-file-video"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <!-- <i class="icon-file icon-file-music"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <i class="icon-file icon-file-photo"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span>
- <i class="icon-file icon-file-td"></i><span>《管理者的商业逻辑》- 李董出版 20170612</span> -->
- </div>
- <div class="progress-cont fl clearfix">
- <div class="fl progress-view layui-progress layui-progress-big" lay-showpercent="true"
- lay-filter="demo">
- <div class="layui-progress-bar layui-bg-color" lay-percent="0%"></div>
- </div>
- <div class="progress-label fr">
- 正在生成
- </div>
- </div>
- <div class="fr handle-view cancelFile">
- 取消上传
- </div>
- </h2>
- <div class="info-item-view">
- <h2 class="info-title clearfix file-edit">
- <div class="layui-form-item checkBox fl">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" checked="">
- </div>
- </div>
- <div class="layui-input-block item-title fl">
- <input class="layui-input title-input" type="text" name="title" value="《管理者的商业逻辑》- 李董出版 20170612" lay-verify="title" autocomplete="off"
- placeholder="请输入文件名称" />
- </div>
- <div class="fr handle-view">
- <i class="showView layui-icon layui-icon-down"></i>
- <i class="deleteView layui-icon layui-icon-delete"></i>
- </div>
- </h2>
- <div class="info-content">
- <div class="layui-form-item">
- <label class="layui-form-label">课程:</label>
- <div class="layui-input-block">
- <input type="text" id="courseSelect" class="layui-input" readonly="readonly" />
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">应用类型:</label>
- <div class="layui-input-block">
- <select name="interest" lay-filter="aihao">
- <option value=""></option>
- <option value="0">写作</option>
- <option value="1">阅读</option>
- <option value="2">游戏</option>
- <option value="3">音乐</option>
- <option value="4">旅行</option>
- </select>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">媒体类型:</label>
- <div class="layui-input-block">
- <select name="interest" lay-filter="aihao">
- <option value=""></option>
- <option value="0">写作</option>
- <option value="1">阅读</option>
- <option value="2">游戏</option>
- <option value="3">音乐</option>
- <option value="4">旅行</option>
- </select>
- </div>
- </div>
- </div>
- <div class="layui-form-item layui-form-text">
- <label class="layui-form-label">资源简介:</label>
- <div class="layui-input-block">
- <textarea placeholder="简要介绍资源内容,适合阅读人群等" class="layui-textarea"></textarea>
- </div>
- </div>
- <div class="layui-form-item layui-form-text">
- <label class="layui-form-label">使用建议:</label>
- <div class="layui-input-block">
- <textarea placeholder="简要说明资源的使用建议" class="layui-textarea"></textarea>
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-input-block">
- <input type="checkbox" name="like1[write]" lay-skin="primary" title="推荐给学生" checked="">
- <span class="icon-tip">
- ?
- <div id="fileTips" class="fileTips">
- <b class="tip-em"><i class="em1"></i><i class="em2"></i></b>
- <div class="tip-title">
- 推荐给学生的资源,学生登录,系统也可以查看哦!
- </div>
- </div>
- </span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </form>
css less代码如下:
- .info-item {
- background: #fff;
- border: 1px solid #d5ebff;
- margin-bottom:10px;
- }
- .info-item-view{
- display: none;
- }
- .info-title {
- height: 62px;
- padding: 0 20px;
- border-bottom: 1px solid #e8ecf0;
- background-color: #f1f5f8;
- .item-title {
- margin-left: 0px;
- }
- .title-input {
- width: 648px;
- height: 30px;
- line-height: 30px;
- margin-top: 15px;
- }
- .handle-view {
- line-height: 60px;
- i {
- margin-left: 10px;
- color: #bcc0c5;
- font-size: 18px;
- cursor: pointer;
- }
- i:hover {
- color: #228cf9;
- }
- }
- .cancelFile{
- color:#FD5A62;
- cursor: pointer;
- }
- }
- .info-content {
- background-color: #fff;
- padding-top: 20px;
- display: none;
- .layui-form-label {
- width: 120px;
- text-align: right;
- color: #75797a;
- }
- .layui-input-block {
- margin-left: 120px;
- width: 648px;
- }
- .layui-inline {
- .layui-input-block {
- width: 140px;
- }
- }
- }
- /*进度条样式*/
- .file-progress{
- .file-text{
- width:300px;
- line-height: 60px;
- >i{
- display: inline-block;
- width:18px;
- height: 18px;
- position: relative;
- top:4px;
- margin-right:4px;
- }
- .icon-file-file{
- background:url('../../img/upload/icon-file-file.png') center center no-repeat;
- }
- .icon-file-video{
- background:url('../../img/upload/icon-file-video.png') center center no-repeat;
- }
- .icon-file-music{
- background:url('../../img/upload/icon-file-music.png') center center no-repeat;
- }
- .icon-file-photo{
- background:url('../../img/upload/icon-file-photo.png') center center no-repeat;
- }
- .icon-file-td{
- background:url('../../img/upload/icon-file-td.png') center center no-repeat;
- }
- }
- .progress-cont{
- display: none;
- position: relative;
- margin-right:10px;
- top:20px;
- }
- .progress-view{
- width:180px;
- position: relative;
- top:4px;
- }
- .progress-label{
- color:#3ED07B;
- font-size: 14px;
- line-height: 22px;
- margin-left: 10px;
- }
- .progress-over{
- box-sizing: border-box;
- margin-left:26px;
- width:18px;
- height:18px;
- background:rgba(62,208,123,1);
- border-radius:50%;
- color:#fff;
- line-height: 18px;
- font-style: normal;
- text-align: center;
- }
- .layui-bg-color{
- background-color:#3ED07B;
- }
- .layui-progress-text {
- position: relative;
- top: 0px;
- line-height: 12px;
- font-size: 12px;
- color: #666;
- }
- .layui-progress-big, .layui-progress-big .layui-progress-bar {
- height: 14px;
- line-height: 14px;
- }
- .layui-progress {
- background-color: #F1EFFF;
- position: relative;
- height: 14px;
- border-radius: 2px;
- border:1px solid #E8ECF0;
- }
- .layui-progress-bar {
- position: absolute;
- left:;
- top:;
- width:;
- max-width: 100%;
- height: 6px;
- border-radius: 2px;
- text-align: right;
- background-color: #5FB878;
- transition: all .3s;
- -webkit-transition: all .3s;
- }
- }
js代码如下:
- <script src="../../static/js/libs/jquery-1.9.1.min.js"></script>
- <script src="../../layui/layui.all.js"></script>
- <script>
- $(function () {
- layui
- .config({
- base: "../../layui/lay/mymodules/"
- })
- .use(["form", "cascader", "upload", "element"], function () {
- var form = layui.form;
- form.render();
- var cascader = layui.cascader;
- var upload = layui.upload;
- var element = layui.element;
- /* 级联选择器 方法 开始 */
- var id = 1;
- var casView = cascader({
- elem: "#courseSelect",
- data: [{
- value: "A",
- label: "a"
- }],
- lazy: true,
- lazyLoad: function (node, callback) {
- setTimeout(() => {
- var arr = [];
- id++;
- /* 这里可以写动态获取数据数组*/
- for (var i = 0; i < id; i++) {
- arr.push({
- value: id + "-" + i,
- label: "选项" + id + "-" + i,
- leaf: id >= 6
- });
- }
- // node节点数据需要与新数据一并传递回去
- callback(arr, node);
- }, 1000);
- },
- success: function (valData, labelData) {
- console.log(valData, labelData);
- }
- });
- /* 进度条设置 开始*/
- //触发事件
- /* 执行 */
- var fileProgress = function () {
- var fileSize = 41.12;
- var othis = $(this);
- // var DISABLED = 'layui-btn-disabled';
- // if(othis.hasClass(DISABLED)) return;
- element.progress('demo', '0%');
- $(".progress-cont").css({
- "display": "block"
- });
- $(".progress-label").removeClass("progress-over").text('0k/' + fileSize + "k")
- $(".progress-view").css({
- "display": "block"
- });
- //模拟loading
- var n = 0,
- timer = setInterval(function () {
- n = n + Math.random() * 10 | 0;
- $(".progress-label").removeClass("progress-over").text((fileSize * (n / 100)).toFixed(2) + 'k/' +
- fileSize + "k")
- if (n > 100) {
- n = 100;
- clearInterval(timer);
- // othis.removeClass(DISABLED);
- $(".progress-label").addClass("progress-over").text('✓');
- $(".progress-view").css({
- "display": "none"
- });
- /* 上传成功之后 */
- /* 取消上传 按钮 进行隐藏 */
- $(".cancelFile").css({display:'none'})
- /* 将file-progress隐藏 info-item-view显示*/
- $(".file-progress").css({display:'none'})
- $(".info-item-view").css({display:'block'})
- }
- element.progress('demo', n + '%');
- }, 300 + Math.random() * 1000);
- // othis.addClass(DISABLED);
- };
- /* 进度条设置 结束*/
- //执行进度条方法
- fileProgress();
- });
- /* 取消上传 */
- $(".cancelFile").click(function(){
- var itemBoxHtml = $(this).parents('.info-item').first();
- $(itemBoxHtml).css({display:'none'})
- dataCount = dataCount-1;
- flagShowCheckBox();
- })
- /* 点击头部的 关闭 展示按钮 */
- $(".showView").click(function () {
- let falg = $(this).hasClass('layui-icon-up')
- if (falg) {
- $(this).removeClass('layui-icon-up').addClass('layui-icon-down');
- $(this).parents('.info-item').find(".info-content").css({
- display: 'none'
- });
- } else {
- $(this).parents('.info-item').find(".info-content").css({
- display: 'block'
- });
- $(this).removeClass('layui-icon-down').addClass('layui-icon-up');
- }
- })
- /* 点击删除按钮 */
- $(".deleteView").click(function () {
- $(this).parents(".info-item").css({
- display: 'none'
- });
- dataCount = dataCount-1;
- flagShowCheckBox();
- })
- /* 用来判断是否显示复选框
- * 当值大于1时才显示复选框
- */
- var dataCount = $(".info-edit-cont").find('.info-item').length;
- console.log(dataCount);
- var flagShowCheckBox = function () {
- if (dataCount > 1) {
- $(".checkBox").css({
- display: 'block'
- })
- } else {
- $(".checkBox").css({
- display: 'none'
- })
- }
- }
- flagShowCheckBox();
- $("#addBtn").click(function(){
- window.location.href = './resourcesUpload.html'
- })
- });
- </script>
折叠面板实现,上传文件进度条,三级联选择器,多级联选择器, 利用layui实现的更多相关文章
- node实现http上传文件进度条 -我们到底能走多远系列(37)
我们到底能走多远系列(37) 扯淡: 又到了一年一度的跳槽季,相信你一定准备好了,每每跳槽,总有好多的路让你选,我们的未来也正是这一个个选择机会组合起来的结果,所以尽可能的找出自己想要的是什么再做决定 ...
- Ajax上传文件进度条显示
要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...
- asp.net大文件上传与上传文件进度条问题
利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...
- php上传文件进度条
ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前 ...
- ajax上传文件进度条
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- html5异步上传图片显示上传文件进度条
<html> <head> </head> <body> <p> emo_album_id:<input type="tex ...
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...
- atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.x ...
- Jquery.Uploadify实现批量上传显示进度条 取消 上传后缩略图显示 可删除
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoad.aspx.cs&q ...
随机推荐
- H3C交换机恢复出厂设置
reset saved-configuration reboot 恢复出厂设置后查看当前配置: ..............................
- django入门5使用xadmin搭建管理后台
环境搭建: pip install django==1.9.8 pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl pip install f ...
- 神器之strace
原链接:https://www.jianshu.com/p/33521124bdf2来
- SonarQube - 常用配置与操作
1 - SonarQube服务器中的数据库配置 2019年4月10号,SonarQube发文称在7.9之后,所有的SonarQube的版本(CE.DE.EE和DCE)中将停止对MySQL的支持. 建议 ...
- springboot 读取Jar 类路径下的文件
Resource resource = new DefaultResourceLoader().getResource("classpath:download/WORKER_OVERTIME ...
- 编程语言与python介绍
目录 一.编程语言的发展史 1.1 机器语言 1.2 汇编语言 1.3 高级语言 1.3.1 编译型 1.3.2 解释型 1.4 总结 2.python介绍 2.1 python解释器版 2.2 运行 ...
- [转帖]linux下安装7z命令及7z命令的使用
linux下安装7z命令及7z命令的使用 https://www.cnblogs.com/yiwd/p/3649094.html yum install p7zip 执行命令为 7za x 或者是 7 ...
- C 语言 基础篇
1.机器语言 2.汇编语言 3.高级语言:C.C++.Java(基于虚拟机) C语言开发:Unix,Linux,Mac OS,iOS,Android,Windows,Ubuntu 开发环境:visua ...
- Migrate to AndroidX 遇到的坑
Androidx 迁移方法: 首先把 gradle 版本改为3.2.0以上,以及 compileSdkVersion 为28以上 然后 Android Studio 菜单栏 Refactor -> ...
- 使用PHP开发HR系统(3)
本节我们讲述如何创建主页. ====================================================================================== ...