博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客园定制页面(五)——使用自定义JS脚本(公告栏显示时间)
阅读量:6825 次
发布时间:2019-06-26

本文共 3573 字,大约阅读时间需要 11 分钟。

一、js使用方法

使用方法主要分为以下几步:

  1. 在本地创建js脚本文件;
  2. 博客园的管理——文件——选择文件——上传
  3. 然后在设置里面的博客侧边栏公告或者页首Html代码或者页脚Html代码中用自定义的html等代码调用即可。

注意:博客园的js权限需要申请开通。一般先写两篇博客再申请,如果不通过多申请两次即可通过。

二、公告栏钟表显示时间

下面是示例我的博客公告栏的钟表显示的js设置方法:

  1. 创建js脚本
  2. 上传到自己账户的文件中,然后在博客侧边栏公告调用js脚本

2.1、本地创建js脚本

  • 本地创建名为clock.js的文件,文件内容是下面的js脚本内容。
  • 将clock.js在管理——文件——选择文件——上传,上传到自己账号的文件中
1 var dom = document.getElementById('clock');  2 var ctx = dom.getContext('2d');  3 var width = ctx.canvas.width;  4 var height = ctx.canvas.height;  5 var r = width / 2;  6 //定义钟盘  7 function drawBackground(){  8     ctx.save();  9     ctx.translate(r, r); 10     ctx.beginPath(); 11     ctx.lineWidth = 10; 12     ctx.font ='18px Arial'; 13     ctx.textAlign = 'center' 14     ctx.textBaseline = 'middle' 15     ctx.arc(0, 0, r-5, 0, 2 * Math.PI, false); 16     ctx.stroke(); 17     var hourNumbers = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2]; 18     //遍历获取坐标 19     hourNumbers.forEach(function(number, i){ 20         var rad = 2 * Math.PI / 12 * i; 21         var x = Math.cos(rad) * (r - 30); 22         var y = Math.sin(rad) * (r - 30); 23         ctx.fillText(number, x ,y); 24     }) 25   26     //定义刻度 27     for(var i=0;i<60;i++){ 28         var rad = 2 * Math.PI / 60 * i; 29         var x = Math.cos(rad) * (r - 18); 30         var y = Math.sin(rad) * (r - 18); 31         ctx.beginPath(); 32         if(i % 5 == 0){ 33             ctx.arc(x, y, 2, 0, 2 * Math.PI, false); 34             ctx.fillStyle = '#000'; 35         }else{ 36             ctx.arc(x, y, 2, 0, 2 * Math.PI, false); 37             ctx.fillStyle = '#ccc'; 38         } 39         ctx.fill(); 40     } 41   42 } 43   44 //定义时钟 45 function drawHour(hour,minute){ 46     ctx.save(); 47     ctx.beginPath(); 48     var rad = 2 * Math.PI / 12 * hour; 49     var mrad = 2 * Math.PI / 12 / 60 * minute; 50     ctx.rotate(rad + mrad); 51     ctx.lineWidth = 6; 52     ctx.lineCap= 'round'; 53     ctx.moveTo(0 ,10); 54     ctx.lineTo(0 ,-r / 2); 55     ctx.stroke(); 56     ctx.restore(); 57 } 58 //定义分钟 59 function drawMinute(minute,second){ 60     ctx.save(); 61     ctx.beginPath(); 62     var rad = 2 * Math.PI / 60 * minute; 63     var srad = 2 * Math.PI / 60 /60 * second; 64     ctx.rotate(rad + srad); 65     ctx.lineWidth = 3; 66     ctx.lineCap= 'round'; 67     ctx.moveTo(0 ,10); 68     ctx.lineTo(0 ,-r + 18); 69     ctx.stroke(); 70     ctx.restore(); 71 } 72 //定义秒钟 73 function drawSecond(second){ 74     ctx.save(); 75     ctx.beginPath(); 76     var rad = 2 * Math.PI / 60 * second; 77     ctx.rotate(rad); 78     ctx.lineWidth = 3; 79     ctx.lineCap= 'round'; 80     ctx.moveTo(-2 ,20); 81     ctx.lineTo( 2, 20); 82     ctx.lineTo( 1, -r + 18); 83     ctx.lineTo( -1, -r + 18); 84     ctx.fillStyle = '#c14543'; 85     ctx.fill(); 86     ctx.restore(); 87 } 88 //定义钟盘圆点样式 89 function drawDot(){ 90     ctx.beginPath(); 91     ctx.fillStyle = '#fff'; 92     ctx.arc(0, 0, 3, 0, 2 * Math.PI, false); 93     ctx.fill(); 94 } 95   96 //时间函数 97 function draw(){ 98     ctx.clearRect(0, 0, width, height); 99     var now = new Date();100     var hour = now.getHours();101     var minute = now.getMinutes();102     var second = now.getSeconds();103     drawBackground();104     drawHour(hour,minute);105     drawMinute(minute,second);106     drawSecond(second);107     drawDot();108     ctx.restore();109 }110 setInterval(draw, 1000)
View Code

 

2.2、以下是博客园侧边栏设置

在设置里面的博客侧边栏公告填写下面代码,然后保存。

1 
您的浏览器不兼容canvas
2
View Code

 

注意:js脚本地址是我的账户的文件的地址,换成自己账户即可。

二、参考

参考博客:

转载于:https://www.cnblogs.com/mehome/p/10586645.html

你可能感兴趣的文章
用js玩桌球游戏
查看>>
maven下运行jetty报错
查看>>
android 配置framework 使应用首选安装在SD卡
查看>>
h5 点击表单 顶部fixed 菜单栏 上移
查看>>
windows 2008 R2 64位系统杀毒软件
查看>>
我的友情链接
查看>>
netty学习笔记
查看>>
更改win7文件类型默认操作
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Webgoat 笔记总结 Web Services
查看>>
Linux Mysql安装部署
查看>>
多线程 概述
查看>>
Nagios达到阈值时发不出告警邮件问题总结
查看>>
互联网公司应该要有的技术人员配置和开发事项清单
查看>>
Android开发中如何改变RadioButton背景图片和文字的相对位置
查看>>
如何给Linux (Fedora Ubuntu等)安装字体
查看>>
MySQL大小写敏感问题和命名规范
查看>>
java 获取时间 和 转换时间
查看>>
Redis主从复制
查看>>