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 相关文章推荐
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
javascript实现汉字转拼音代码分享
Apr 20 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
谈一谈javascript闭包
Jan 28 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
vue项目实现github在线预览功能
Jun 20 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
手淘flexible.js框架使用和源代码讲解小结
Oct 15 Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
javascript事件模型代码
2007/07/01 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
python如何定义带参数的装饰器
2018/03/20 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
extern是什么意思
2016/03/10 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
求职自荐信
2013/12/14 职场文书
食堂员工工作职责
2013/12/18 职场文书
五一口号
2014/06/19 职场文书
会计系毕业求职信
2014/08/07 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书