jquery模仿八卦动态时钟效果
代码语言:html
所属分类:视觉差异
代码描述:jquery模仿八卦动态时钟效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>动态时钟</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
}
body {
background-attachment: fixed;
color: #F5F4F6;
font-size: 12px;
font-weight: bold;
overflow: hidden;
width: 1000px;
height: 900px;
font-family: "微软雅黑";
}
audio {
position: absolute;
right: 0;
opacity: 0.1;
transition: all 1s;
}
audio:hover {
opacity: 1;
}
.current {
color: #D1A3F7;
}
video {
z-index: -1;
/* object-fit: fill; */
position: fixed;
/* right: 0px;
bottom: 0px; */
min-width: 100%;
min-height: 100%;
/* height: auto;
width: auto; */
}
.main-content {
position: absolute;
top: 50%;
left: 50%;
}
.main-content .year {
position: relative;
top: -13px;
left: -38px;
text-align: center
}
.main-content .year span {
position: absolute;
width: 80px;
}
.main-content .month {
position: relative;
top: -13px;
left: 40px;
}
.month span {
position: absolute;
width: 60px;
}
.main-content .day {
position: relative;
top: -13px;
left: 85px;
}
.day span {
position: absolute;
width: 65px;
}
.main-content .week {
position: relative;
top: -13px;
left: 145px;
}
.week span {
position: absolute;
width: 65px;
}
.main-content .shichen {
position: relative;
top: -13px;
left: 200px;
}
.shichen span {
position: absolute;
width: 125px;
}
.main-content .hour {
position: relative;
top: -13px;
left: 240px;
}
.hour span {
position: absolute;
width: 60px;
}
.main-content .minute {
position: relative;
top: -13px;
left: 300px;
}
.minute span {
position: absolute;
width: 60px;
}
.main-content .second {
position: relative;
top: -13px;
left: 370px;
}
.second span {
position: absolute;
width: 60px;
}
</style>
<script>
$(document).ready(function () {
var style = document.styleSheets[0];
type=config.language_type;
space=getSpace(12,type);
$(".main-content .month").css("left",space.month+'px');
$(".main-content .day").css("left",space.day+'px');
$(".main-content .week").css("left",space.week+'px');
$(".main-content .shichen").css("left",space.shichen+'px');
$(".main-content .hour").css("left",space.hour+'px');
$(".main-content .minute").css("left",space.minute+'px');
$(".main-content .second").css("left",space.second+'px');
$("body").css("color",config.font_color);
style.cssRules[4].style.color=config.pointer_color;
if(config.sound)
{
var ele="<audio controls loop autoplay><source src='sound/"+config.sound_name+"'></audio>"
$("body").append(ele);
}
switch(config.background_style)
{
case 0:
var ele1="url('images/"+config.background_picture+"') fixed no-repeat"
$('body').css('background',ele1);
$('body').css('background-size','100% 100%');
break;
case 1:
$('body').append('<video loop autoplay muted><source src="video/'+config.background_video+'"></video>')
break;
case 2:
$('body').css('background',config.background_color);
break;
}
var monthLeft=$(".main-content .month").css("left");
var dayLeft=$(".main-content .day").css("left");
var weekLeft=$(".main-content .week").css("left");
var shichenLeft=$(".main-content .shichen").css("left");
var hourLeft=$(".main-content .hour").css("left");
var minuteLeft=$(".main-content .minute").css("left");
var secondLeft=$(".main-content .second").css("left");
var top=$(".main-content .month").css("top");
var yearLeft=$(".main-content .year span").width()/2;
//杩涘叆褰撳墠鏃堕棿
var Time={
currentTime:{
year:1970,
month:1,
day:1,
hour:0,
minute:0,
second:0,
week:0,
shichen:{}
},
months:[],
days:[],
hours:[],
minutes:[],
seconds:[],
shichens:[],
weeks:[],
hours:[],
minutes:[],
seconds:[],
yearUnit:"骞�",
monthUnit:"鏈�",
dayUnit:"鏃�",
weekUnit:"鏄熸湡",
hourUnit:"鏃�",
minuteUnit:"鍒�",
secondUnit:"绉�"
}
var month=Time.currentTime.month;
var year=Time.currentTime.year;
initTime(Time,type);
$(".main-content .year").append("<span class='current'>"+Time.currentTime.year+Time.yearUnit+"</span>");
var h=$(".year span").height();
top=-(parseInt(top))-parseInt(h)/2;
top+="px";
$(".main-content .month").append("<span class='current'>"+Time.currentTime.month+Time.monthUnit+"</span>");
$(".main-content .day").append("<span class='current'>"+Time.currentTime.day+Time.dayUnit+"</span>");
$(".main-content .week").append("<span class='current'>"+Time.currentTime.week+"</span>");
$(".main-content .shichen").append("<span class='current'>"+Time.currentTime.shichen.str+"</span>");
$(".main-content .hour").append("<span class='current'>"+Time.currentTime.hour+Time.hourUnit+"</span>");
$(".main-content .minute").append("<span class='current'>"+Time.currentTime.minute+Time.minuteUnit+"</span>");
$(".main-content .second").append("<span class='current'>"+Time.currentTime.second+Time.secondUnit+"</span>");
for (const key in Time.months) {
if (Time.months.hasOwnProperty(key)) {
const element = Time.months[key];
if(element!=Time.currentTime.month){
$(".main-content .month").append("<span>"+element+Time.monthUnit+"</span>");
}
}
}
for (const key in Time.days) {
if (Time.days.hasOwnProperty(key)) {
const element = Time.days[key];
if(element!=Time.currentTime.day){
$(".main-content .day").append("<span>"+element+Time.dayUnit+"</span>");
}
}
}
for (const key in Time.weeks) {
if (Time.weeks.hasOwnProperty(key)) {
const element = Time.weeks[key];
if(element!=Time.currentTime.week){
$(".main-content .week").append("<span>"+element+"</span>");
}
}
}
for (const key in Time.shichens) {
if (Time.shichens.hasOwnProperty(key)) {
const element = Time.shichens[key];
if(element!=Time.currentTime.shichen.str){
$(".main-content .shichen").append("<span>"+element+"</span>");
}
}
}
for (const key in Time.hours) {
if (Time.hours.hasOwnProperty(key)) {
const element = Time.hours[key];
if(element!=Time.currentTime.hour){
$(".main-content .hour").append("<span>"+element+Time.hourUnit+"</span>");
}
}
}
for (const key in Time.minutes) {
if (Time.minutes.hasOwnProperty(key)) {
const element = Time.minutes[key];
if(element!=Time.currentTime.minute){
$(".main-content .minute").append("<span>"+element+Time.minuteUnit+"</span>");
}
}
}
for (const key in Time.seconds) {
if (Time.seconds.hasOwnProperty(key)) {
const element = Time.seconds[key];
if(element!=Time.currentTime.second){
$(".main-content .second").append("<span>"+element+Time.secondUnit+"</span>");
}
}
}
setTimeout(function () {
$(".month span").each(function(index,element){
$(element).css("animation","month"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes month"+index+"{0%{transform: rotateZ(0);transform-origin: -"+monthLeft+" "+top+";}100%{transform:rotateZ("+-(360/12)*(index)+"deg);transform-origin: -"+monthLeft+" "+top+";}}",style.rules.length);
});
}, 0);
setTimeout(function () {
$(".day span").each(function(index,element){
$(element).css("animation","day"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes day"+index+"{0%{transform: rotateZ(0);transform-origin: -"+dayLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.days.length)*index+"deg);transform-origin: -"+dayLeft+" "+top+";}}",style.rules.length);
});
}, 1000);
setTimeout(function () {
$(".week span").each(function(index,element){
$(element).css("animation","week"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes week"+index+"{0%{transform: rotateZ(0);transform-origin: -"+weekLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.weeks.length)*index+"deg);transform-origin: -"+weekLeft+" "+top+";}}",style.rules.length);
});
}, 2000);
setTimeout(function () {
$(".shichen span").each(function(index,element){
$(element).css("animation","shichen"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes shichen"+index+"{0%{transform: rotateZ(0);transform-origin: -"+shichenLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.shichens.length)*index+"deg);transform-origin: -"+shichenLeft+" "+top+";}}",style.rules.length);
});
}, 3000);
setTimeout(function () {
$(".hour span").each(function(index,element){
$(element).css("animation","hour"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes hour"+index+"{0%{transform: rotateZ(0);transform-origin: -"+hourLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.hours.length)*index+"deg);transform-origin: -"+hourLeft+" "+top+";}}",style.rules.length);
});
}, 4000);
setTimeout(function () {
$(".minute span").each(function(index,element){
$(element).css("animation","minute"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes minute"+index+"{0%{transform: rotateZ(0);transform-origin: -"+minuteLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.minutes.length)*index+"deg);transform-origin: -"+minuteLeft+" "+top+";}}",style.rules.length);
});
}, 5000);
setTimeout(function () {
$(".second span").each(function(index,element){
$(element).css("animation","second"+index+" 1s linear");
$(element).css("animation-fill-mode","forwards");
style.insertRule("@keyframes second"+index+"{0%{transform: rotateZ(0);transform-origin: -"+secondLeft+" "+top+";}100%{transform:rotateZ("+-(360/Time.seconds.length)*index+"deg);transform-origin: -"+secondLeft+" "+top+";}}",style.rules.length);
});
}, 6000);
//鏃堕棿鏃嬭浆
setTimeout(function () {
$(".year span").css("animation","yearRun 1s linear infinite");
style.insertRule("@keyframes yearRun {0%{transform: rotateZ(0);transform-origin: -"+yearLeft+" "+top+";}100%{transform:rotateZ(720deg);transform-origin: -"+yearLeft+" "+top+";}}",style.rules.length);
$($(".main-content .second span")[0]).removeClass("current");
$(".second span").each(function(index,element){
$(element).css("animation","secondRun"+index+" 1s linear infinite");
style.insertRule("@keyframes secondRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+secondLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+secondLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .minute span")[0]).removeClass("current");
$(".minute span").each(function(index,element){
$(element).css("animation","minuteRun"+index+" 1s linear infinite");
style.insertRule("@keyframes minuteRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+minuteLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+minuteLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .hour span")[0]).removeClass("current");
$(".hour span").each(function(index,element){
$(element).css("animation","hourRun"+index+" 1s linear infinite");
style.insertRule("@keyframes hourRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+hourLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+hourLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .shichen span")[0]).removeClass("current");
$(".shichen span").each(function(index,element){
$(element).css("animation","shichenRun"+index+" 1s linear infinite");
style.insertRule("@keyframes shichenRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+shichenLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+shichenLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .week span")[0]).removeClass("current");
$(".week span").each(function(index,element){
$(element).css("animation","weekRun"+index+" 1s linear infinite");
style.insertRule("@keyframes weekRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+weekLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+weekLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .day span")[0]).removeClass("current");
$(".day span").each(function(index,element){
$(element).css("animation","dayRun"+index+" 1s linear infinite");
style.insertRule("@keyframes dayRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+dayLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+dayLeft+" "+top+";}}",style.rules.length);
});
$($(".main-content .month span")[0]).removeClass("current");
$(".month span").each(function(index,element){
$(element).css("animation","monthRun"+index+" 1s linear infinite");
style.insertRule("@keyframes monthRun"+index+" {0%{transform: rotateZ(0);transform-origin: -"+monthLeft+" "+top+";}100%{transform:rotateZ("+((index+1)*720)+"deg);transform-origin: -"+monthLeft+" "+top+";}}",style.rules.length);
});
}, 7000);
//瀹氫箟鍒濆鍖栧綋鍓嶆椂闂�
setTimeout(function () {
var myDate = new Date();
Time.currentTime.year=myDate.getFullYear();
Time.currentTime.month=myDate.getMonth()+1;
Time.currentTime.day=myDate.getDate();
Time.currentTime.week=myDate.getDay();
Time.currentTime.hour=myDate.getHours();
Time.currentTime.minute=myDate.getMinutes();
Time.currentTime.second=myDate.getSeconds();
month=Time.currentTime.month;
year=Time.currentTime.year;
initTime(Time,type);
$(".main-content .year").html("");
$(".main-content .year").append("<span class='current'>"+Time.currentTime.year+Time.yearUnit+"</span>");
$(".main-content .second").html("");
$(".main-content .second").append("<span class='current'>"+Time.currentTime.second+Time.secondUnit+"</span>");
for (const key in Time.seconds) {
if (Time.seconds.hasOwnProperty(key)) {
const element = Time.seconds[key];
if(element!=Time.currentTime.second){
$(".main-content .second").append("<span>"+element+Time.secondUnit+"</span>");
}
}
}
$(".main-content .minute").html("");
$(".main-content .minute").append("<span class='current'>"+Time.currentTime.minute+Time.minuteUnit+"</span>");
for (const key in Time.minutes) {
if (Time.minutes.hasOwnProperty(key)) {
const element = Time.minutes[key];
if(element!=Time.currentTime.minute){
$(".main-content .minute").append("<span>"+element+Time.minuteUnit+"</span>");
}
}
}
$(".main-content .hour").html("");
$(".main-content .hour").append("<span class='current'>"+Time.currentTime.hour+Time.hourUnit+"</span>");
for (const key in Time.hours) {
if (Time.hours.hasOwnProperty(key)) {
const element = Time.hours[key];
if(element!=Time.currentTime.hour){
$(".main-content .hour").append("<span>"+element+Time.hourUnit+"</span>");
}
}
}
$(".main-content .shichen").html("");
$(".main-content .shichen").append("<span class='current'>"+Time.currentTime.shichen.str+"</span>");
for (const key in Time.shichens) {
if (Time.shichens.hasOwnProperty(key)) {
const element = Time.shichens[key];
if(element!=Time.currentTime.shichen.str){
$(".main-content .shichen").append("<span>.........完整代码请登录后点击上方下载按钮下载查看
网友评论0