小程序实现日历左右滑动效果


Posted in Javascript onOctober 21, 2019

本文实例为大家分享了小程序日历左右滑动效果的具体代码,供大家参考,具体内容如下

效果图

小程序实现日历左右滑动效果

小程序实现日历左右滑动效果

小程序实现日历左右滑动效果

wxml

<scroll-view class="scroll-view" scroll-left="{{scrollLeftIndex*itemWidth}}" scroll-x scroll-with-animation>
 <view class='item' style='width:{{itemWidth}}px' wx:for="{{dateList}}" data-index='{{index}}' bindtap='clickDate'>
 <view class='text-view'>
 <view class='day {{index==clickIndex?"day-active":""}}'>{{item.day}}</view>
 <text class='month'>{{item.month}}月</text>
 <view wx:if="{{item.month == sysmonth && item.day == nowDate}}">
 <text class='week'>今日</text>
 </view>
 <view wx:else>
 <text class='week'>{{item.week}}</text>
 </view>
 </view>
 </view>
</scroll-view>

js

// byjs_sun/pages/product/all/all.js
Page({
 
 /**
 * 页面的初始数据
 */
 data: {
 dateList:[], //存放日期的数组
 nowDate:'', //系统当前日期
 },
 // 格式化日期,时间
 formatTime(date) {
 const year = date.getFullYear()
 const month = date.getMonth() + 1
 const day = date.getDate()
 const hour = date.getHours()
 const minute = date.getMinutes()
 const second = date.getSeconds()
 return [year, month, day].map(this.formatNumber).join('/') + ' ' + [hour, minute, second].map(this.formatNumber).join(':')
 },
 // 格式化数字
 formatNumber(n) {
 n = n.toString()
 return n[1] ? n : '0' + n
 },
 
 // 获取日期详情
 getDateInfo(ts) {
 const date = new Date(ts);
 const weekArr = new Array("日", "一", "二", "三", "四", "五", "六");
 const week = date.getDay();
 let dateString = this.formatTime(date);
 let shortDateString = dateString.replace(/\//g, '-').substring(5, 10).replace(/-/g, '月') + "日";
 if (date.getDate() < 10) {
 shortDateString = shortDateString.replace(/0/g, '');
 }
 return {
 shortDateString,
 dateString,
 month: date.getMonth() + 1,
 day: date.getDate(),
 week: weekArr[week]
 }
 },
 
/**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 var that = this;
 var myDate = new Date(); //获取系统当前时间
 var sysmonth = myDate.getMonth() + 1
 var nowDate = myDate.getDate(); //当前是本月几日
 var today = myDate.toLocaleDateString(); //今日年月日
 that.setData({
 nowDate: nowDate,
 sysmonth: sysmonth
 }),
 console.log('系统日期:',myDate);
 console.log('系统日期(年/月/日):',today);
 console.log('系统日期(月):', sysmonth);
 console.log('系统日期(日):', nowDate);
 
 // 获取屏幕宽度,设置每个日期宽度
 wx.getSystemInfo({
 success: (res) => {
 console.log(res);
 this.setData({
 windowWidth: res.windowWidth,
 itemWidth: parseInt(res.windowWidth / 7)
 });
 },
 })
 this.initData();
 },
 
 // 初始化日期
 initData() {
 const nowDateTime = +new Date();
 let dateList = [];
 for (let i = -30; i < 30; i++) {
 let obj = this.getDateInfo(nowDateTime + i * 24 * 60 * 60 * 1000);
 obj.isChoose = i == 0;
 dateList.push(obj);
 }
 this.setData({
 dateList,
 clickIndex: 30,
 scrollLeftIndex: 30
 
 });
 },
 
 // 点击日期方法
 clickDate(e) {
 var that = this;
 console.log('点击日期携带的下标:', e.currentTarget.dataset.index); //当前的点击的日期
 var index = e.currentTarget.dataset.index;
 that.setData({
 clickIndex: index
 });
 // console.log(that.data.scrollLeftIndex);
 console.log('当前点击日期:',that.data.dateList[index].shortDateString); //当前点击的日期
 
 // const {
 // index
 // } = e.currentTarget.dataset;
 // this.setData({
 // clickIndex: index
 // });
 // console.log(this.data.dateList[index]);
 },
})

样式

.scroll-view {
 height: 200rpx;
 background-color: #313751;
 width: 100%;
 white-space: nowrap;
}
.item {
 height: 200rpx;
 display: inline-block;
}
.text-view {
 display: flex;
 align-items: center;
 justify-content: center;
 flex-direction: column;
 width: 100%;
 height: 100%;
 color: #fff;
}
.month {
 font-size: 30rpx;
 margin-top: 10rpx;
}
.week {
 font-size: 32rpx;
 margin-top: 10rpx;
}
.day {
 font-size: 32rpx;
 width: 60rpx;
 height: 60rpx;
 border-radius: 10rpx;
 text-align: center;
 line-height: 60rpx;
 margin-top: 20rpx;
}
/* 日期选中的样式 */
.day-active {
 background-color: #FFB400;
 color: #fff;
}

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

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

Javascript 相关文章推荐
(仅IE下有效)关于checkbox 三态
May 12 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
js动态调用css属性的小规律及实例说明
Dec 28 Javascript
jQuery移除元素自动解绑事件实现思路及代码
May 31 Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 Javascript
node.js中的http.response.setHeader方法使用说明
Dec 14 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
JS创建Tag标签的方法详解
Jun 09 Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 Javascript
node.js域名解析实现方法详解
Nov 05 Javascript
JS+canvas五子棋人机对战实现步骤详解
Jun 04 Javascript
微信小程序可滑动月日历组件使用详解
Oct 21 #Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 #Javascript
小程序实现横向滑动日历效果
Oct 21 #Javascript
微信小程序实现点击图片放大预览
Oct 21 #Javascript
vue实现Input输入框模糊查询方法
Jan 29 #Javascript
mpvue实现左侧导航与右侧内容的联动
Oct 21 #Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 #Javascript
You might like
在普通HTTP上安全地传输密码
2007/07/21 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
在Django的URLconf中使用命名组的方法
2015/07/18 Python
python生成excel的实例代码
2017/11/08 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
如何完美的建立一个python项目
2020/10/09 Python
业务副厂长岗位职责
2014/01/03 职场文书
物理力学求职信
2014/02/18 职场文书
倡议书格式范文
2014/04/14 职场文书
体育专业自荐书
2014/05/29 职场文书
验房委托书
2014/08/30 职场文书
小学数学教学反思范文
2016/02/16 职场文书