圣诞节又到了,作为程序猿的我用代码给女朋友送了一个礼物


圣诞节又到了,拿什么来哄女朋友开心?

我们先来做一个简单的雪人动画:

项目结构:

html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS3圣诞树雪人下雪动画效果</title><style type="text/css">  
body{margin:0;padding:0;list-style-type:none;}  
.header{margin: 0 0 30px;background: url(css/img/header-bg.png);background: url(css/img/snow-bg.png) repeat-y center, url(css/img/header-bg.png);-webkit-animation: animate-snow 9s linear infinite;-moz-animation: animate-snow 9s linear infinite;-ms-animation: animate-snow 9s linear infinite;animation: animate-snow 9s linear infinite;    
}@-webkit-keyframes animate-snow
{0% { background-position: center 0, 0 0;}100% { background-position: center 885px, 0 0;}
}@-moz-keyframes animate-snow
{0% { background-position: center 0, 0 0;}100% { background-position: center 885px, 0 0;}
}@-ms-keyframes animate-snow
{0% { background-position: center 0, 0 0;}100% { background-position: center 885px, 0 0;}
}    @keyframes animate-snow
{0% { background-position: center 0, 0 0;}100% { background-position: center 885px, 0 0;}
}  .wrapper{ width: 960px; height: 315px; margin: auto; overflow: hidden; position: relative; background-image: url(css/img/wrapper-bg.png); background-repeat: no-repeat; background-position: bottom;    }  @-moz-keyframes animate-drop {0% {opacity:0;-moz-transform: translate(0, -315px);}100% {opacity:1;-moz-transform: translate(0, 0);}
}@-webkit-keyframes animate-drop {0% {opacity:0;-webkit-transform: translate(0, -315px);}100% {opacity:1;-webkit-transform: translate(0, 0);}
}@-ms-keyframes animate-drop {0% {opacity:0;-ms-transform: translate(0, -315px);}100% {opacity:1;-ms-transform: translate(0, 0);}
}@keyframes animate-drop {0% {opacity:0;transform: translate(0, -315px);}100% {opacity:1;transform: translate(0, 0);}
}    .christmas-tree, .snowman {position: absolute;-moz-animation: animate-drop 1s linear;-webkit-animation: animate-drop 1s linear;-ms-animation: animate-drop 1s linear;animation: animate-drop 1s linear;
}.christmas-tree {width: 112px;height: 137px;background: url(css/img/christmas-tree.png);
}.snowman {width: 115px;height: 103px;top: 195px;left: 415px;background: url(css/img/snowman.png);-moz-animation-duration: .6s;-webkit-animation-duration: .6s;-ms-animation-duration: .6s;animation-duration: .6s;
}  .tree1 {top: 165px;left: 35px;-moz-animation-duration: .6s;-webkit-animation-duration: .6s;-ms-animation-duration: .6s;animation-duration: .6s;    
}.tree2 {left: 185px;top: 175px;  -moz-animation-duration: .9s;-webkit-animation-duration: .9s;-ms-animation-duration: .9s;animation-duration: .9s;    
}.tree3 {left: 340px;top: 125px;  -moz-animation-duration: .7s;-webkit-animation-duration: .7s;-ms-animation-duration: .7s;animation-duration: .7s;    
}.tree4 {left: 555px;top: 155px;  -moz-animation-duration: .8s;-webkit-animation-duration: .8s;-ms-animation-duration: .8s;animation-duration: .8s;    
}.tree5 {left: 710px;top: 170px;  -moz-animation-duration: .7s;-webkit-animation-duration: .7s;-ms-animation-duration: .7s;animation-duration: .7s;    
}.tree6 {left: 855px;top: 125px;  -moz-animation-duration: .6s;-webkit-animation-duration: .6s;-ms-animation-duration: .6s;animation-duration: .6s;    
}  
</style></head><body><div class="header"><div class="wrapper"><div class="christmas-tree tree1"></div><div class="christmas-tree tree2"></div><div class="christmas-tree tree3"></div><div class="snowman"></div>  <div class="christmas-tree tree4"></div><div class="christmas-tree tree5"></div><div class="christmas-tree tree6"></div></div>
</div>
<div style="text-align:center;">
<p>来源:<a href="sunmenglei.blog.csdn.net" target="_blank">孙叫兽的博客</a></p>
</div>
<script src="http://down.admin5.comjs/tongji.js"></script>
<script src="http://down.admin5.comjs/youxia.js" type="text/javascript"></script>
</body>
</html>


图片下载地址:
https://download.csdn.net/download/weixin_41937552/13786683

效果图:

这样就完成了在HTML中使用css3实现雪人动画效果。

下面我们玩一个比较有特色的圣诞树。

圣诞节虽然不是中国的传统节日,但当下很多时髦的年轻人却很喜欢过这个欢乐的节日,并乐于打造参与属于这个节日的仪式感。

除了所知的圣诞老人、圣诞树、互送礼物、吃大餐等传统习俗外,其实程序员能为今天的节日增加一些特别的环节。

圣诞树下载:

https://download.csdn.net/download/weixin_41937552/13780446


我们把下载的压缩包解压,把exe文件放到桌面,双击打开即可。

桌面效果图:

可以打开多个圣诞树,如果关闭圣诞树需要鼠标右键点击exit即可。

代码如下

<!DOCTYPE HEML PUBLIC>
<html>
<head>
<meta charset="utf-8">
<style>
html, body
{width: 100%;height: 100%;margin: 0;padding: 0;border: 0;}div
{
margin: 0;
padding: 0;
border: 0;
}
.nav
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 27px;
background-color: white;                   color: black;
text-align: center;
line-height: 25px;
}
a
{
color: black;
text-decoration: none;
border-bottom: 1px dashed black;
}
a:hover
{
border-bottom: 1px solid red;
}
.previous
{
float: left;
margin-left: 10px;
}
.next
{
float: right;
margin-right: 10px;
}
.green
{
color: green;
}
.red
{
color: red;
}
textarea
{
width: 100%;
height: 100%;
border: 0;                
padding: 0;                
margin: 0;                
padding-bottom: 20px;                
}            
.block-outer            
{                
float: left;                
width: 22%;                
height: 100%;                
padding: 5px;                
border-left: 1px solid black;                
margin: 30px 3px 3px 3px;                
}            
.block-inner            
{                
height: 68%;                
}            
.one            
{                
border: 0;                
}
</style>      
</head>      
<body marginwidth="0" marginheight="0">
<canvas id="c" height="356" width="446">
<script>              
var collapsed = true;            
function toggle()            
{                  
var fs = top.document.getElementsByTagName('frameset')[0];                
var f = fs.getElementsByTagName('frame');                
if (collapsed)                
{                      
fs.rows = '250px,*';                    
fs.noResize = false;                    
f[0].noResize = false;                      
f[1].noResize = false;                  
}                 
else                
{                      
fs.rows = '30px,*';                    
fs.noResize = true;                      
f[0].noResize = true;                    
f[1].noResize = true;                
}                  
collapsed = !collapsed;            
}      
</script>  
<script>              
var b = document.body;            
var c = document.getElementsByTagName('canvas')[0];            
var a = c.getContext('2d');            
document.body.clientWidth;
</script>  
<script>
M=Math;
Q=M.random;J=[];
U=16;
T=M.sin;
E=M.sqrt;
for(O=k=0;x=z=j=i=k<200;)
with(M[k]=k?c.cloneNode(0):c)
{    
width=height=k?32:W=446;        
with(getContext('2d'))        
if(k>10|!k)        
for(        
font='60px Impact',        
V='rgba(';I=i*U,fillStyle=k?k==13?V+'205,205,215,.15)':        
V+(147+I)+','+(k%2?128+I:0)+','+I+',.5)':'#cca',i<7;        
)    
beginPath(        
fill(            
arc(                
U-i/3,                
24-i/2,                
k==13?4-(i++)/2:8-i++,                
0,                
M.PI*2,1                
)            
)            
);
else for(;
x=T(i),        
y=Q()*2-1,        
D=x*x+y*y,        
B=E(D-x/.9-1.5*y+1),        
R=67*(B+1)*(L=k/9+.8)>>1,        
i++<W;        
)
if(D<1)    
beginPath(        
strokeStyle=V+R+','+(R+B*L>>0)+',40,.1)'        
),        
moveTo(U+x*8,U+y*8),        
lineTo(U+x*U,U+y*U),        
stroke();
for(        
y=H=k+E(k++)*25,        
R=Q()*W;        
P=3,j<H;        
)    
J[O++]=[x+=T(R)*P+Q()*6-3,y+=Q()*U-8,z+=T(R-11)*P+Q()*6-3,j/H*20+((j+=U)>H&Q()>.8?Q(P=9)*4:0)>>1]
}
setInterval(function G(m,l)
{    
A=T(D-11);    
if(l)
return(        
m[2]-l[2])*A+(l[0]-m[0])*T(D);        
a.clearRect(0,0,W,W);        
J.sort(G);
for(        
i=0;        
L=J[i++];        
a.drawImage        
(            
M[L[3]+1],207+L[0]*A+L[2]*T(D)>>0,L[1]>>1)    )    
{        
if(i==2e3)        
a.fillText        
(            
'Happy Christmas!',            
U,345);
if(!(i%7))        
a.drawImage        
(            
M[13],
((157*(i*i)+T(D*5+i*i)*5)%W)>>0,            
((113*i+(D*i)/60)%(290+i/99))>>0            
);    
}    
D+=.02
},1)
</script>
</body>
</html>

好啦,本期内容就介绍到这里,我们下期见!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】权限篇(二)

权限目录 1. 前言2. 权限2.1 修改权限2.2 有无权限的对比2.3 另外一个修改权限的方法2.3.1 更改用户角色2.3.2 修改文件权限属性 3. 第一个属性列4. 目录权限5. 默认权限 1. 前言 在之前的一篇博客中分享了关于权限的一些知识&#xff0c;这次紧接上次的进行&#xff0c;有需要…

孙叫兽重磅推荐Chrome插件——CSDN浏览器助手

导读:解决你在浏览器上遇到的各种问题,无论你是学生小白、还是职场老鸟,都可以借助这个插件,打造个性化浏览器,提升工作学习效率。 此插件经过多轮迭代,体积小,内存占用少,便于开发者快速安装和使用。 官方地址:https://plugin.csdn.net/ 目录 安装方法:

【APICloud系列|21】使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

导读:APICloud是柚子(北京)科技有限公司创建的低代码开发平台,总部位于北京, 通过生产力工具与混合开发技术,为企业与开发者构建高效的IT环境;在APICloud平台已有80万注册用户,平台每日生成安装包超6000个。业务团队延伸至上海、深圳、重庆、青岛等10余个城市。 APICloud是…

数据湖 多维数据集_按汇总分组/多维数据集

数据湖 多维数据集时不时地&#xff0c;您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会早早放弃并使用Java / [或您的语言]计算内容。 相反&#xff0c;使用SQL可能是如此简单快捷。 如果您使用的是高级数据库&#xff0c;例如DB2 &#xff0c; Oracle &#xff0c…

FlexyPool如何同时支持连接代理和装饰器

代理人 FlexyPool监视连接池使用情况&#xff0c;因此需要拦截连接关闭方法调用。 为了简单起见&#xff0c;第一个版本为此目的依赖动态代理&#xff1a; private static class ConnectionInvocationHandler implements InvocationHandler {public static final String CLOS…

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍...

1 创建集合视图&#xff0c;设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器&#xff0c;系统默认管理着一个集合视图UICollectionView&#xff0c;功能几乎和UITableViewController差不多&#xff0c;能够以多行多列的…

【APICloud系列|24】 MNNavigationMenu模块(导航菜单)的实现

导读:MNNavigationMenu 是一个导航栏菜单,开发者可自定义其中的样式和按钮个数,超出屏幕部分可左右拖动查看。 模块详情:http://www.apicloud.com/mod_detail/12417 index.html <!doctype html> <html> <head><meta charset="utf-8">&…

mysql2教程_mySQL 教程 第2章 安装和介绍mySQL

设置mySQL字符集支持中文的字符集是utf8&#xff0c;该设置可以更改mySQL配置文件进行全局设置&#xff0c;也可以针对数据库设置&#xff0c;也可以针对表设置&#xff0c;也可以针对列设置。字符集更改后新插入的数据生效&#xff0c;对以前不生效。练习1&#xff1a;更改MyS…

java 更新订单状态_Java 8状态更新

java 更新订单状态即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity。 这两天的状态更新都已经发布。 我会与您分享链接&#xff0c;因此您可能会在假期中通读它们 Oracle计划在2013年中期发布Java SE 8。 Lambda项目 Lambda项目以及JSR-335希望提…

基于JBoss Fuse 6.2的JBoss BPM微服务集成指南

今年年初&#xff0c;我们宣布了JBoss BPM Suite令人兴奋的示例项目&#xff0c;该项目围绕一个正在运行的在线Travel Agency项目展开。 最初是利用Web服务&#xff0c;后来我们在JBoss Fuse的帮助下迁移到微服务 。 随着JBoss Fuse 6.2的发布&#xff0c;我们希望重新访问该…

mysql zip 还原_mysql 压缩还原数据库

MySQL数据库备份和还原的常用命令其实很多情况下mysql备份就是采用了这些命令&#xff0c;例如&#xff1a;mysql导入和导出数据linux自动定时备份web程序和mysql数据库备份MySQL数据库的命令mysqldump -hhostname -uusername -ppassword databasename > backup...文章无声胜…

jvm调试工具_调试JVM

jvm调试工具在某些&#xff08;极少数&#xff09;情况下&#xff0c;您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下&#xff0c;调试JVM本身很有用&#xff0c;这样可以更精确地定位崩溃。 这是执行此操作的步骤&…

遮罩窗体弹出登录页面代码实现

先上效果图(本人喜欢胡巴&#xff0c;背景用了胡巴)&#xff0c;鼠标滑过页面&#xff0c;图片变暗&#xff0c;透明度为0.4&#xff0c;同时弹出登录窗口。 接下来先看css代码(写的可能不是很规范&#xff0c;根据调整样式顺序写的) body{background-color: black;width: 100%…

【APICloud系列|27】 UICalendar模块(日历)的实现

导读:UICalendar 是一个日历选择模块;可自定义日历的样式,添加特殊日期标注,切换月份,设置指定日期;用于实现常用的日期选择,日历展示功能 模块地址 UICalendar 是一个日历选择模块;可自定义日历的样式,添加特殊日期标注,切换月份,设置指定日期;用于实现常用的日期…

使用Camel从WildFly 8向WebLogic 12发送JMS消息

系统集成是一个很好的挑战。 特别是当您在寻找通信标准和可靠的解决方案时。 在当今的微服务世界中&#xff0c;每个人都在谈论REST服务和基于http的协议。 实际上&#xff0c;对于大多数企业项目来说&#xff0c;这往往是远远不够的&#xff0c;而这些项目通常具有更复杂的要求…

【APICloud系列|28】 UIChatBox 模块(聊天输入框)的实现

导读:UIChatBox 模块是一个聊天输入框模块,开发者可自定义该输入框的功能 项目结构: config.xml <?xml version="1.0" encoding="UTF-8"?><widget id="A6909001303255" version="0.0.1"> <name>UIChatbox<…

mysql索引参数_MySQL索引介绍

索引由数据库表中一列或者多列组合而成&#xff0c;其作用是提高对表中数据的查询速度。创建索引是指在某个表的一列或者多列上建立一个索引&#xff0c;用来提高对表的访问速度&#xff0c;创建索引由三种方法&#xff1a;在创建表的时候创建&#xff0c;在已存在的表上创建和…

【APICloud系列|31】百度导航功能的实现

导读:百度导航基础功能。d用到了bMap模块,baiduNavigation模块,UIListView模块。样式完全来自AUI。js用到了zepto.j 效果图: 项目结构: index.html <!doctype html> <html> <head><meta charset="utf-8"><meta name="viewport…

osgi简介_OSGi:简介

osgi简介为基于Java的系统创建的OSGi提供了模块化系统的框架。 OSGi使得可以定义每个单独模块与其他模块的依赖关系&#xff0c;并使用户能够控制生命周期并动态更改系统的每个组件。 OSGi是一个规范&#xff0c;最常见的实现可以算作Equinox &#xff0c; Apache Felix和Knopl…

GC基本算法及C++GC机制

前言 垃圾收集器是一种动态存储分配器&#xff0c;它自动释放程序不再需要的已分配的块&#xff0c;这些块也称为垃圾。在程序员看来&#xff0c;垃圾就是不再被引用的对象。自动回收垃圾的过程则称为垃圾收集&#xff08;garbage collection&#xff09;。在一个支持垃圾收集的…