//index.js
//获取应用实例
const util = require("../../utils/util.js");
const app = getApp()
Page({
data: {
title:'',
currentTime: "",
isTransform:true,
isBack:false,
width: 0,
height: 0,
bg: 'cloud://timemechine-6gk33n8ja79a3c4a.7469-timemechine-6gk33n8ja79a3c4a-1300403844/bg/bg01.jpg'
},
onLoad: function () {
const that = this;
// wx.cloud.callFunction({
// // 需调用的云函数名
// name: 'sendMessage',
// data:{
// "openid": app.globalData.userInfo._openid
// },
// success: function(res) {
// console.log(res);
// },
// fail: function(err){
// console.log(err);
// }
// })
wx.getSystemInfo({
//获取系统信息成功,将系统窗口的宽高赋给页面的宽高
success: function (res) {
that.width = res.windowWidth
that.height = res.windowHeight
that.setData({
width:that.width,
height:that.height
})
// 这里的单位是PX,实际的手机屏幕有一个Dpr,这里选择iphone,默认Dpr是2
}
})
const data = util.formatTime(new Date()).split(' ')[0];
setInterval(function () {
const _currentTime = util.formatTime(new Date()).split(" ")[1]
that.setData({
currentTime: _currentTime,
title:data
});
}, 1000)
//创建画布
},
onReady: function () {
this.drawClock();
// // 每40ms执行一次drawClock(),人眼看来就是流畅的画面
this.interval = setInterval(this.drawClock, 1000);
},
// 所有的canvas属性以及Math.sin,Math.cos()等涉及角度的参数都是用弧度表示
// 时钟
drawClock: function () {
const ctx = wx.createCanvasContext('clockindex');
var height = this.height;
var width = this.width;
// 设置文字对应的半径
var R = width / 2 - 108;
// 把原点的位置移动到屏幕中间,及宽的一半,高的一半
ctx.translate(width / 2, height / 4);
ctx.setStrokeStyle('white');
// 画外框
function drawBackground() {
// 设置线条的粗细,单位px
ctx.setLineWidth(4.5);
// var my_gradient=ctx.createCircularGradient(0,0,200);
// my_gradient.addColorStop(1,"black");
// my_gradient.addColorStop(0,"white");
ctx.setShadow(0,0,40,'#000000');
ctx.setFillStyle('rgba(255,255,255,.3)');
// 开始路径
ctx.beginPath();
// 运动一个圆的路径
// arc(x,y,半径,起始位置,结束位置,false为顺时针运动)
ctx.arc(0, 0, width / 2 - 90, 0, 2 * Math.PI, false);
ctx.fill();
ctx.closePath();
// ctx.setLineWidth(3);
ctx.beginPath();
ctx.arc(0, 0, width / 2 - 84, 0, 2 * Math.PI, false);
ctx.stroke();
ctx.closePath();
// 描出点的路径
};
// 画时钟数
function drawHoursNum() {
ctx.setFontSize(14);
// 圆的起始位置是从3开始的,所以我们从3开始填充数字
var hours = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2];
hours.forEach(function (hour, i) {
var rad = (2 * Math.PI / 12) * i;
var x = R * Math.cos(rad);
var y = R * Math.sin(rad);
// 因为微信小程序不支持BaseLine这个属性,所以这里我们只能自己手动调整位置
if (hour == 12) {
ctx.fillText(hour, x - 6, y + 6);
} else if (hour == 6) {
ctx.fillText(hour, x - 3, y + 3);
} else {
ctx.fillText(hour, x - 4, y + 5);
}
})
};
// 画数字对应的点
function drawdots() {
for (let i = 0; i < 60; i++) {
var rad = 2 * Math.PI / 60 * i;
var x = (R + 10) * Math.cos(rad);
var y = (R + 10) * Math.sin(rad);
ctx.beginPath();
// 每5个点一个比较大
if (i % 5 == 0) {
ctx.arc(x, y, 3, 0, 2 * Math.PI, false);
} else {
ctx.arc(x, y, 1, 0, 2 * Math.PI, false);
}
ctx.setFillStyle('white');
ctx.fill();
}
ctx.closePath();
}
// 画时针
function drawHour(hour, minute) {
// 保存画之前的状态
ctx.save();
ctx.beginPath();
// 根据小时数确定大的偏移
var rad = 2 * Math.PI / 12 * hour;
// 根据分钟数确定小的偏移
var mrad = 2 * Math.PI / 12 / 60 * minute;
// 做旋转
ctx.rotate(rad + mrad);
ctx.setLineWidth(8);
// 设置线条结束样式为圆
ctx.setLineCap('round');
// 时针向后延伸8个px;
ctx.moveTo(0, 8);
// 一开始的位置指向12点的方向,长度为R/2
ctx.lineTo(0, -R / 2);
ctx.stroke();
ctx.closePath();
// 返回画之前的状态
ctx.restore();
}
// 画分针
function drawMinute(minute, second) {
ctx.save();
ctx.beginPath();
// 根据分钟数确定大的偏移
var rad = 2 * Math.PI / 60 * minute;
// 根据秒数确定小的偏移
var mrad = 2 * Math.PI / 60 / 60 * second;
ctx.rotate(rad + mrad);
// 分针比时针细
ctx.setLineWidth(6);
ctx.setLineCap('round');
ctx.moveTo(0, 10);
// 一开始的位置指向12点的方向,长度为3 * R / 4
ctx.lineTo(0, -3 * R / 4);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
// 画秒针
function drawSecond(second, msecond) {
ctx.save();
ctx.beginPath();
// 根据秒数确定大的偏移
var rad = 2 * Math.PI / 60 * second;
// 1000ms=1s所以这里多除个1000
var mrad = 2 * Math.PI / 60 / 1000 * msecond;
ctx.rotate(rad + mrad);
ctx.setLineWidth(4);
// 设置线条颜色为红色,默认为黑色
ctx.setStrokeStyle('red');
ctx.setLineCap('round');
ctx.moveTo(0, 12);
ctx.lineTo(0, -R/1.2);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
//画出中间那个灰色的圆
function drawDot() {
ctx.beginPath();
ctx.arc(0, 0, 8, 0, 2 * Math.PI, false);
ctx.setFillStyle('lightgrey');
ctx.fill();
ctx.closePath();
}
function Clock() {
// const canvas = res[0].node;
// const ctx = canvas.getContext('2d');
// 实时获取各个参数
var now = new Date();
var hour = now.getHours();
var minute = now.getMinutes()
var second = now.getSeconds();
var msecond = now.getMilliseconds();
// 依次执行各个方法
drawHoursNum();
drawBackground();
drawdots();
drawHour(hour, minute);
drawMinute(minute, second);
drawSecond(second, msecond);
drawDot();
// 微信小程序要多个draw才会画出来,所以在最后画出
ctx.draw();
}
// // 执行Clock这个方法,实际上执行了所有步骤
Clock();
}
})
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序毕业设计-微信小程序-时间管理小程序源码(95分以上课程设计).zip

共150个文件
json:44个
js:32个
png:26个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉

温馨提示
微信小程序毕业设计-微信小程序-时间管理小程序源码.zip 95分以上课程设计,代码完整下载即用无需修改,确保可以运行。也可作为期末大作业和课程设计。 安装教程 导入到微信开发者工具 配置云开发环境 创建云数据库表 可根据自己喜好更换背景图片 运行测试 微信小程序毕业设计-微信小程序-时间管理小程序源码.zip 95分以上课程设计,代码完整下载即用无需修改,确保可以运行。安装教程 导入到微信开发者工具 配置云开发环境 创建云数据库表 可根据自己喜好更换背景图片 运行测试微信小程序毕业设计-微信小程序-时间管理小程序源码.zip 95分以上课程设计,代码完整下载即用无需修改,确保可以运行。安装教程 导入到微信开发者工具 配置云开发环境 创建云数据库表 可根据自己喜好更换背景图片 运行测试微信小程序毕业设计-微信小程序-时间管理小程序源码.zip 95分以上课程设计,代码完整下载即用无需修改,确保可以运行。安装教程 导入到微信开发者工具 配置云开发环境 创建云数据库表 可根据自己喜好更换背景图片 运行测试微信小程序毕业设计-微信小程序-时间管理小程序源码.zip 95分以上课程设计,
资源推荐
资源详情
资源评论





























收起资源包目录





































































































共 150 条
- 1
- 2

猰貐的新时代
- 粉丝: 1w+
- 资源: 3084

下载权益

C知道特权

VIP文章

课程特权

开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Comsol光子晶体微腔的傅里叶变换分析:包含FDTD模型、Moiré效应建模及Matlab代码实现.pdf
- Comsol光子晶体微腔与傅里叶变换分析:涉及FDTD模型及Matlab代码的研究.pdf
- Comsol光子晶体微腔与傅里叶变换分析:涉及FDTD模型与Matlab代码.pdf
- COMSOL全息光栅.pdf
- COMSOL六角蜂窝光子晶体能带仿真:高对称路径+k空间仿真模型与MATLAB出图脚本.pdf
- COMSOL全耦合模拟:电弧-等离子体-熔池中钨金属与钢的氩气环境作用及其优势.pdf
- COMSOL光纤模式色散图.pdf
- Comsol光纤布拉格.pdf
- 45-0311线性判别分析LDA与多分类学习略-1080P 高清-AVC.mp4
- 46-0312类别不平衡问题-1080P 高清-AVC.mp4
- COMSOL光纤仿真模型.pdf
- Comsol光学:Taper波导传输及倏逝场效率求解.pdf
- Comsol光纤溶液加热模型:'电磁波,波束包络'物理场接口下的光耦合效率研究.pdf
- 47-0313梯度下降法-1080P 高清-AVC.mp4
- Comsol光纤直状态模型.pdf
- COMSOL光学BIC手性:通用计算透反射分量的仿真文件截图.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
前往页