JavaScript 实现同时选取多个时间段的方法


Posted in Javascript onOctober 17, 2019

本文介绍了JavaScript 实现同时选取多个时间段的方法,分享给大家,具体如下:

<template>
 <div>
  <ul>
   <li
    v-for="(item,index) in timeLine.idList"
    :key="index"
    iselected="0"
    @mousemove="item.id != undefined ? move_li($event) : ''"
    @mousedown="item.id != undefined ? down_li() : ''"
    @mouseup="item.id != undefined ? up_li() : ''"
    :id="item.id != undefined ? item.id : ''"
   >
    <div :id="item.id != undefined ? item.id : ''" iselected="0"></div>
   </li>
  </ul>
  <div class="num">
   <span>0</span>
   <span>1</span>
   <span>2</span>
   <span>3</span>
   <span>4</span>
   <span>5</span>
   <span>6</span>
   <span>7</span>
   <span>8</span>
   <span>9</span>
   <span>10</span>
   <span>11</span>
   <span>12</span>
   <span>13</span>
   <span>14</span>
   <span>15</span>
   <span>16</span>
   <span>17</span>
   <span>18</span>
   <span>19</span>
   <span>20</span>
   <span>21</span>
   <span>22</span>
   <span>23</span>
   <span>24</span>
  </div>
 </div>
</template>

<script>
export default {
 data() {
  return {
   timeLine: {
    flag: 0,
    preid: -1,
    idList: [
     {},
     { id: 0 },
     {},
     { id: 1 },
     {},
     { id: 2 },
     {},
     { id: 3 },
     {},
     { id: 4 },
     {},
     { id: 5 },
     {},
     { id: 6 },
     {},
     { id: 7 },
     {},
     { id: 8 },
     {},
     { id: 9 },
     {},
     { id: 10 },
     {},
     { id: 11 },
     {},
     { id: 12 },
     {},
     { id: 13 },
     {},
     { id: 14 },
     {},
     { id: 15 },
     {},
     { id: 16 },
     {},
     { id: 17 },
     {},
     { id: 18 },
     {},
     { id: 19 },
     {},
     { id: 20 },
     {},
     { id: 21 },
     {},
     { id: 22 },
     {},
     { id: 23 },
     {}
    ]
   }
  };
 },
 methods: {
  down_li(e) {
   this.timeLine.flag = 1;
  },
  up_li() {
   this.timeLine.flag = 0;
   this.timeLine.preid = -1;
  },
  move_li(e) {
   if (this.timeLine.flag == 0) {
    return;
   }
   var id = e.target.getAttribute('id');
   if (id == undefined) {
    return;
   }
   id = parseInt(id);
   // 避免重复获取 ID,每个时间段都只获取一次 ID
   if (this.timeLine.preid == id) {
    return;
   }
   // 避免滑动时闪烁
   this.timeLine.preid = id;
   var iselected = $('#' + id).attr('iselected');
   if (iselected == 1) {
    $("#"+id).children('div').css('background-color','');
    $("#"+id).attr('iselected', '0');
   } else {
    $("#"+id).children('div').css('background-color','#3bbe9b');
    $("#"+id).attr('iselected', '1');
   }
  },
  // 处理提交至后台数据的时间格式为 start : end
  timeLineSub() {
   var preid = -1;
   var start;
   var count = 0;
   var timeArr = [];
   $('li[iselected=1]').each(function(index, value) {
    var id = value.id;
    if (preid == -1) {
     preid = id;
     start = id;
     count++;
     return;
    }
    if (preid == id - 1) {
     count++;
    } else {
     if (count > 0) {
      timeArr.push(start + ':' + count);
     }
     start = id;
     count = 1;
    }
    preid = id;
   });
   timeArr.push(start + ':' + count);
   this.timeRange = timeArr.join(',');
  }
 }
};
</script>

<style lang="less" scoped>
html,
body {
 margin: 0;
 padding: 0;
 ul {
  height: 20px;
  margin-bottom: 0px;
  padding: 10px 19px;
  li {
   cursor: pointer;
   list-style: none;
   float: left;
   height: 20px;
   padding: 6px 0;
  }
  li:nth-child(even) {
   div {
    width: 28px;
    height: 5px;
    margin-top: 2px;
    background-color: rgb(232, 234, 236);
   }
  }
  li:nth-child(odd) {
   div {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    margin-top: 1px;
    border: 1px solid rgb(59, 190, 155);
   }
  }
 }
 .num {
  height: 100%;
  padding-left: 20px;
  margin-top: 2px;
  span {
   display: inline-block;
   width: 9px;
   height: 7px;
   font-size: 12px;
   margin-right: 23px;  
  }
  span:last-child {
   margin-right: 0px;
  }
 }
}
</style>

效果图如下:

JavaScript 实现同时选取多个时间段的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
复制小说文本时出现的随机乱码的去除方法
Sep 07 Javascript
js实现键盘控制DIV移动的方法
Jan 10 Javascript
初识Node.js
Mar 20 Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
Bootstrap图片轮播效果详解
Oct 17 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 #Javascript
浅谈Vue.set实际上是什么
Oct 17 #Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 #Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 #Javascript
Weex开发之地图篇的具体使用
Oct 16 #Javascript
WEEX环境搭建与入门详解
Oct 16 #Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 #Javascript
You might like
SONY ICF-F10中波修复记
2021/03/02 无线电
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python中logging日志库实例详解
2020/02/19 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
木工主管岗位职责
2013/12/08 职场文书
小学生美德少年事迹
2014/02/02 职场文书
公司管理建议书范文
2014/03/12 职场文书
公司担保书格式范文
2014/05/12 职场文书
关于责任的演讲稿
2014/05/20 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书