js css3挂历撕掉动画特效
js基于css3属性制作挂历日历本,默认获取当前日期和星期,通过鼠标点击日历本挂历掉落动画特效。 这是古董挂历哈哈哈好久没见过了,喜欢的一定要试哦~
html代码
<div class="calendar"><div class="pages"></div>
</div>
css代码
*,
*::before,
*::after {box-sizing: border-box;
}
body {display: flex;justify-content: center;align-items: center;height: 100vh;font-family: 'Zilla Slab', serif;background: #577386;overflow: hidden;
}
p {margin: 0 0 3px;line-height: 1;letter-spacing: 1px;pointer-events: none;
}
.calendar {position: relative;width: 152px;cursor: default;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;
}
.calendar::before,
.calendar::after {content: '';position: absolute;top: -28px;left: 40px;width: 10px;height: 10px;border-radius: 5px;background: #ddd;z-index: 3;
}
.calendar::after {left: initial;right: 40px;
}
.pages {position: relative;text-align: center;background: #eee;box-shadow: 0 10px 0 0 #a5a4a4;
}
.pages::before {content: '';position: absolute;width: 100%;height: 45px;background: indianred;bottom: 100%;left: 0;z-index: 2;
}
.page {position: relative;padding: 20px 30px 15px;background: #eee;
}
.page::before {content: '';position: absolute;bottom: 99%;left: 0;display: block;background: linear-gradient(-45deg, #eee 10px, #eee 10px, #eee 10px, transparent 0), linear-gradient(45deg, #eee 10px, transparent 0);background-position: left top;background-repeat: repeat-x;background-size: 10px 18px;height: 10px;width: 100%;
}
.month,
.day-name {text-transform: uppercase;font-weight: 600;
}
.day {font-size: 60px;font-weight: 700;margin: 0 0 15px;
}
.year {font-size: 12px;
}
.tear {position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 1;-webkit-transform-origin: top left;transform-origin: top left;box-shadow: 0 0 10px -1px rgba(0, 0, 0, 0.5);pointer-events: none;-webkit-animation: tear-animation 0.8s linear forwards;animation: tear-animation 0.8s linear forwards;
}
@-webkit-keyframes tear-animation {0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);top: 0;opacity: 1;}20% {-webkit-transform: rotate(9deg);transform: rotate(9deg);top: 0;opacity: 1;}70% {opacity: 1;}100% {top: 200px;opacity: 0;}
}
@keyframes tear-animation {0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);top: 0;opacity: 1;}20% {-webkit-transform: rotate(9deg);transform: rotate(9deg);top: 0;opacity: 1;}70% {opacity: 1;}100% {top: 200px;opacity: 0;}
}
js代码
var pages = document.querySelector('.pages');
var locale = window.navigator.language || 'en-us';var date = new Date();
var dayNum = date.getDate();
var month = date.getMonth();
var dayName = date.toLocaleString(locale, { weekday: 'long' });
var monthName = date.toLocaleString(locale, { month: 'long' });
var year = date.getFullYear();function daysInMonth(month, year) {return new Date(year, month + 1, 0).getDate();
}function getNewDate() {if (dayNum < daysInMonth(month, year)) {dayNum++;} else {dayNum = 1;}if (dayNum === 1 && month < 11) {month++;} else if (dayNum === 1 && month === 11) {month = 0;}if (dayNum === 1 && month === 0) {year++;}var newDate = new Date(year, month, dayNum);dayName = newDate.toLocaleString('en-us', { weekday: 'long' });monthName = newDate.toLocaleString('en-us', { month: 'long' });
}function handleClick(e) {getNewDate();updateCalendar(e.target);
}function updateCalendar(target) {if (target && target.classList.contains('page')) {target.classList.add('tear');setTimeout(function () {pages.removeChild(target);}, 800);} else {return;}renderPage();
}function renderPage() {var newPage = document.createElement('div');newPage.classList.add('page');newPage.innerHTML = '\n <p class="month">' +monthName + '</p>\n <p class="day">' +dayNum + '</p>\n <p class="day-name">' +dayName + '</p>\n <p class="year">' +year + '</p>\n ';pages.appendChild(newPage);
}renderPage();pages.addEventListener('click', handleClick);
js css3挂历撕掉动画特效相关推荐
- css波纹波动效果,js+css3催眠波纹动画特效
js代码 function getRandomNumber() { return Math.floor(Math.random() * 255); } function getBrightness(r ...
- 9款超绚丽的HTML5/CSS3应用和动画特效
HTML5 现在已经不是很前卫的东西了,越来越多的网站和移动应用都在不断地尝试使用HTML5来更好地优化用户体验.今天我们要分享9款超绚丽的HTML5/CSS3应用和动画特效,这里面有菜单.按钮.图片 ...
- 纯CSS3文字Loading动画特效
纯CSS3文字Loading动画特效是一款个性的loading文字加载动画. 在线演示本地下载 更多专业前端知识,请上 [猿2048]www.mk2048.com
- html5 banner特效,HTML5特效库 CSS3遮罩banner动画特效源码
效果图 各位朋友.大家早上好! 今天给大家带来的是 CSS3遮罩banner动画特效源码! 看倦的轮播图的,可以试试这个特效!别有一番意思! 大家可以按照自己的意愿进行行修改,改成自己喜欢的样子! 有 ...
- css3特效框,科技常识:6种非常炫酷的CSS3按钮边框动画特效
今天小编跟大家讲解下有关6种非常炫酷的CSS3按钮边框动画特效 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关6种非常炫酷的CSS3按钮边框动画特效 的相关资料,希望小伙伴们看了有所帮助. ...
- html5 3d引擎 星空,HTML5特效库 用three.js实现3d星空动画特效源码
效果图 各位长友,大家上午好! 今天给大家带来的是 用three.js实现3d星空动画特效源码 大家可以按照自己的意愿进行修改,改成自己喜欢的模样! 若是有想文件版源码的可以进HTML5前端技术交流 ...
- html边框炫酷效果,6种炫酷的CSS3按钮边框动画特效_html/css_WEB-ITnose
这是一款效果非常炫酷的CSS3按钮边框动画特效.这组按钮边框动画共有6种不同的效果.当鼠标滑过按钮的时候,按钮的边框会以不同的方式进行各种动画,效果非常的炫酷. 在线预览 源码下载 使用方法 HTML ...
- html5文章标题定格,jQuery和css3文章标题动画特效
这是一款效果非常不错的jQuery和css3文章标题动画特效. HTML结构 所有效果的html结构是一样的,使用一个作为wrapper,给它一些margins和max-width.标题使用的是 标签 ...
- js+css3的卡牌抽奖特效动画
项目结构: index.html <!DOCTYPE html> <html lang="en"><head><meta charset= ...
最新文章
- php 多个 csv 文件,php - 如何将CSV文件上传到多个数据库目录中? - SO中文参考 - www.soinside.com...
- html答题赚钱源码,WTS在线答题系统 v1.0.0
- 爬空气质量MySQL,mysql
- 玩转oracle 11g(40):Oracle11g 不区分大小写设定
- Spark SQL在100TB上的自适应执行实践
- 使用nginx简单实现负载均衡
- 在Spring Boot 项目中使用Spring AOP实现切面日志
- 最优化读书笔记R(一)
- 在线图像识别相似图片_宋源:图像识别传感器在制桶设备上的应用(附视频)...
- Pytest 自动化测试框架
- 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术...
- 14.19 InnoDB and MySQL Replication InnoDB 和MySQL 复制:
- 成长的痛苦:流播放服务令音乐人版税受损
- 关于5G数据中心:数据中心在5G无线网络系统中的作用
- windows录屏_电脑如何录制屏幕?windows录屏软件哪个好?
- mac连不上wifi 未能加入wifi网络 请尝试靠近无线路由器,或者,运行“无限诊断”来排除故障
- MATLAB自编自适应中值滤波算法
- 现代金融经济的眼重看历史[程序员学经济二]
- 芯片MAXQ622G (MAXIM美信) -- 16位单片机
- python笔记10:数据处理之去除空格
热门文章
- 三星手机直连电脑Samsung Flow
- 整了半天终于把五笔整出来了
- signature=1e5c9cadfac910b9cd55ef06301b71df,Vision-based process control in layered manufacturing
- 【通俗易懂的通信】马尔可夫过程Ⅱ:马尔可夫链中的状态,常返、非常返
- 黑白美女照上色系列,人工智能一键给黑白照片上色
- (精)反激式开关电源
- 线控加速踏板安全设计
- java 数组内元素相乘,java数组元素如何进行加减乘除,请大侠咪赐教!!
- 使用Matlab转换高阶方程自变量和因变量
- Git Bash中出现:error: failed to push some refs to ‘https://gitee.com/xxx/xxx.git‘错误的解决方法