小程序实现横向滑动日历效果

作者:焕想-不怎么回复博客 时间:2024-04-10 16:19:46 

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


<scroll-view class="scroll-view_H" scroll-x>
<view class='list' style='width:{{ width }}rpx'>
 <view bindtap="select" wx:for="{{ calendar }}" wx:key="" wx:for-item="item" wx:for-index="index" data-index="{{ index }}" class='listItem {{index==currentIndex? "current":""}}'>
 <text class='name'>{{ item.week }}</text>
 <text class='date'>{{ item.date }}</text>
 </view>
</view>
</scroll-view>

js: 


function getThisMonthDays(year, month) {
 return new Date(year, month, 0).getDate();
}
// 计算每月第一天是星期几
function getFirstDayOfWeek(year, month) {
 return new Date(Date.UTC(year, month - 1, 1)).getDay();
}
const date = new Date();
const cur_year = date.getFullYear();
const cur_month = date.getMonth() + 1;
const cur_date = date.getDate();
const weeks_ch = ['日', '一', '二', '三', '四', '五', '六'];
//利用构造函数创建对象
function calendar(date, week) {
 this.date = cur_year + '-' + cur_month + '-' + date;
 if (date == cur_date) {
 this.week = "今天";
 } else if (date == cur_date + 1) {
 this.week = "明天";
 } else {
 this.week = '星期' + week;
 }
}
//当前月份的天数
var monthLength = getThisMonthDays(cur_year, cur_month)
//当前月份的第一天是星期几
var week = getFirstDayOfWeek(cur_year, cur_month)
var x = week;
for (var i = 1; i <= monthLength; i++) {
 //当循环完一周后,初始化再次循环
 if (x > 6) {
 x = 0;
 }
 //利用构造函数创建对象
 that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0])
 x++;
}
//限制要渲染的日历数据天数为7天以内(用户体验)
var flag = that.data.calendar.splice(cur_date, that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7)
that.setData({
 calendar: flag
})
selectd = flag;
// console.log(selectd);
var ret_id = [];
const lengths = selectd.length
for (let i = 0; i < lengths; i++) {
 ret_id[i] = selectd[i].date;
}
choosedate = ret_id[0];
//设置scroll-view的子容器的宽度
that.setData({
 width: 186 * parseInt(that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7)
})

CSS:


/*日历开始 */
scroll-view{
height: 128rpx;
width: 101%;
position:fixed;
top:355rpx;

}
scroll-view .list{
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
}
scroll-view .listItem{
text-align: center;
width:187rpx;
height: 128rpx;
background: #f4f4f4;
padding-top: 30rpx;
box-sizing: border-box;
display: inline-block;
}
scroll-view .listItem text{
display: block;
}
scroll-view .listItem .name{
font-size: 25rpx;
}
scroll-view .listItem .date{
font-size: 25rpx;
}
scroll-view .current{
background-color:pink;
 width:200rpx;
position:relative;
}
scroll-view .current text{
color: #fff;
}

更多精彩的日历效果请学习参考专题:javascript日历插件

来源:https://blog.csdn.net/qq_38815953/article/details/79713729

标签:小程序,滑动,日历
0
投稿

猜你喜欢

  • SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案

    2024-01-28 10:39:47
  • ASP中模拟PHP的关联数组

    2009-12-25 16:31:00
  • python+ffmpeg视频并发直播压力测试

    2023-09-02 10:30:33
  • Python异常学习笔记

    2021-03-24 01:33:33
  • mysql -参数thread_cache_size优化方法 小结

    2024-01-13 14:33:33
  • Python计时相关操作详解【time,datetime】

    2023-08-24 17:12:56
  • Python 3.8正式发布,来尝鲜这些新特性吧

    2023-01-30 18:54:16
  • Python实现乱序文件重新命名编号

    2021-05-20 09:07:04
  • Python基础入门之魔法方法与异常处理

    2021-07-01 07:29:39
  • go语言定时器Timer及Ticker的功能使用示例详解

    2024-02-09 09:17:45
  • python编写简易聊天室实现局域网内聊天功能

    2023-08-30 07:45:52
  • Go语言程序开发gRPC服务

    2024-04-23 09:38:02
  • 对python中的控制条件、循环和跳出详解

    2022-03-08 00:41:44
  • JS实现点击表头表格自动排序(含数字、字符串、日期)

    2024-05-02 16:16:53
  • Python打印三角形九九乘法表代码

    2021-11-16 03:27:15
  • 通过视图修改数据时所应掌握的基本准则

    2009-01-07 14:22:00
  • Python切割图片成九宫格的示例代码

    2023-07-10 07:00:57
  • ASP.NET Core读取配置文件

    2024-06-05 09:31:52
  • shtml网页SSI使用详解

    2008-02-20 19:13:00
  • Python实现将SQLite中的数据直接输出为CVS的方法示例

    2022-10-01 00:05:32
  • asp之家 网络编程 m.aspxhome.com