jquery实现简单每周轮换的日历


Posted in jQuery onSeptember 10, 2020

本文实例为大家分享了jquery实现简单每周轮换日历的具体代码,供大家参考,具体内容如下

先放出一张示例图

jquery实现简单每周轮换的日历

在进入页面时自动获取本地时间并激活(示例为2020年9月8日),再点击左按钮时倒退一周,右按钮前进一周。鼠标点击其中li标签时激活并在上方日期显示。

jquery实现简单每周轮换的日历

一个很简单的小日历,主要是项目中经常会使用到就单独拿出来写个demo。具体思路是,获取当前本地日期并推断出周一和周日进而获得本周全部的日期,真正存放的是一个长度为7的时间戳数组,只是显示的是日期,因为我认为利用时间戳做大部分处理比较直接简单。如果有更好思路的小伙伴欢迎批评。下面放出代码。

HTML

<div id="app">
 <div class="title"></div>
 <div class="left"><</div>
 <ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
 </ul>
 <div class="right">></div>
</div>

CSS

<style>
 #app {
  width: 400px;
  height: 50px;
  margin: 200px auto;
  position: relative;
  color: darkgray;
 }
 .title {
  position: absolute;
  top: -50px;
  left: 0;
  width: 200px;
  height: 50px;
 }
 ul {
  list-style: none;
  background-color: blanchedalmond;
  width: 100%;
  display: block;
  padding: 0;
 }
 ul li {
  display: inline-block;
  width: 50px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
 }
 .left {
  position: absolute;
  top: 0;
  left: -50px;
  font-size: 35px;
  cursor: pointer;
 }
 .right {
  position: absolute;
  top: 0;
  right: -50px;
  font-size: 35px;
  cursor: pointer;
 }
 .on {
  color: darkorange;
 }
</style>

JS

<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 <script>
 let now = new Date()
 let oneDay = 1000*60*60*24 // 一天的时间
 let timeArr = [] // 用来存储每次循环真正时间戳的数组
 let onDate = now.getTime() // 当前激活的日期(有且仅有一个)
 init()
 // 点击后添加激活样式
 $('ul li').on('click', function() {
  acton($(this).index())
 })
 $('.left').on('click', function() {
  changeUl(0)
 })
 $('.right').on('click', function() {
  changeUl(1)
 })

 function init() {
  // 计算初始化时的周一和周天
  let monday = now.getTime() - (now.getDay() - 1)*oneDay
  let sunday = now.getTime() + (7 - now.getDay())*oneDay
  // 循环渲染本周
  for(let i = 0;i < 7;i++) {
  let nowDate = monday + oneDay * i
  $('ul li').eq(i).text(new Date(nowDate).getDate())
  timeArr.push(nowDate)
  if (nowDate === now.getTime()) { // 初始化时渲染标签并激活当前本地日期和显示
   acton(i)
  }
  }
 }
 
 // 判断数组中是否存在该日期并激活
 function judon() {
  if (timeArr.indexOf(onDate) !== -1) {
  $('ul li').eq(timeArr.indexOf(onDate)).addClass('on').siblings().removeClass('on')
  } else {
  $('ul li').each(function() {
   $(this).removeClass('on')
  })
  }
 }

 // 点击前后实现更换每周内容,1是前进一周,0是后退一周
 function changeUl(type) {
  for (let n = 0;n < 7;n++) {
  timeArr[n] = type ? timeArr[n] + oneDay*7 : timeArr[n] - oneDay*7
  $('ul li').eq(n).text(new Date(timeArr[n]).getDate())
  }
  judon()
 }
 
 // 激活日期并显示
 function acton(i) {
  let nowTitle = new Date(timeArr[i]);
  $('ul li').eq(i).addClass('on').siblings().removeClass('on');
  $('.title').text(`${nowTitle.getFullYear()}年${nowTitle.getMonth()+1}月${nowTitle.getDate()}日`);
  onDate = timeArr[i]
 }
</script>

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

jQuery 相关文章推荐
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jQuery代码优化方法总结
Jan 29 jQuery
jquery的 filter()方法使用教程
Mar 22 jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
jQuery实现网页拼图游戏
Apr 22 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
jQuery 实现扁平式小清新导航
Jul 07 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 #jQuery
jQuery实现简单三级联动效果
Sep 05 #jQuery
如何基于jQuery实现五角星评分
Sep 02 #jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 #jQuery
Jquery $.map使用方法实例详解
Sep 01 #jQuery
JQuery基于FormData异步提交数据文件
Sep 01 #jQuery
JQuery使用数组遍历跳出each循环
Sep 01 #jQuery
You might like
PHP循环获取GET和POST值的代码
2008/04/09 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
python实现杨氏矩阵查找
2019/03/02 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
药剂专业求职信
2014/06/20 职场文书
村班子对照检查材料
2014/08/18 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
2014年部门工作总结
2014/11/12 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android