HTML页面下雪特效
1. [代码][HTML]代码
<a href="javascript:void(function(){var d = document,a = 'setAttribute',s = d.createElement('script');s[a]('type','text/javascript');s[a]('src','http://www.veryued.org/wp-content/themes/google_snow.js');d.head.appendChild(s);})();">下雪</a>
2. [代码][JavaScript]代码
(function(){
if(window.zythumsgooglesnowloaded) return false;
function oneCircle(ct,cw,ch,pw,_pw,ph,_ph){
var rw = (_pw+(pw-_pw)*Math.random())*cw,
rh = (_ph+(ph-_ph)*Math.random())*ch,
ra = 0.5*Math.random(),
rr = 50+cw/10*Math.random();
ct.globalCompositeOperation = 'source-over';
var g = ct.createRadialGradient(rw, rh, 0, rw, rh, rr);
g.addColorStop(0,'rgba(240,240,240,'+ra+')');
g.addColorStop(1,'rgba(240,240,240,0)');
ct.fillStyle = g;
ct.fillRect(0, 0, cw, ch);
ct.fill();
}
function draw(ct){
var pointerArr = [];
this.dPointer = function(x,y){
pointerArr.push({x:x,y:y});
_draw(0);
}
this.dLine = function(x,y){
pointerArr.push({x:x,y:y});
_draw(0);
}
this.stop = function(){
pointerArr.push(false);
}
var _draw = function(c){
ct.globalCompositeOperation = 'destination-out';
ct.lineWidth = 60;
ct.lineCap = ct.lineJoin = "round";
ct.beginPath();
ct.moveTo(pointerArr[c].x,pointerArr[c].y);
while(pointerArr[++c]){
ct.lineTo(pointerArr[c].x,pointerArr[c].y);
}
ct.stroke();
ct.closePath();
if(pointerArr[c] == undefined) return false;
_draw(++c);
}
}
var d = document.createElement('div'),
ca = document.createElement('canvas'),
w = 0;h = 0;
document.body.appendChild(d);
d.appendChild(ca);
d.style.cssText += ';position:fixed;top:0;left:0;bottom:0;right:0;z-index:100001;';
w = d.offsetWidth;h = d.offsetHeight;
ca.setAttribute('width',w);
ca.setAttribute('height',h);
ca.onselectstart = function(){return false};
ca.style.cursor = 'pointer';
ct = ca.getContext('2d');
//forgs
forgFinished = false;
setTimeout(function(){
(function(){
var loopContent = 100,
loop = function(){
oneCircle(ct,w,h,1,0,0.05,-0.1);
if(loopContent--) setTimeout(loop,50);
}
loop();
})();
},2000)
setTimeout(function(){
(function(){
var loopContent = 80,
loop = function(){
oneCircle(ct,w,h,1.1,0.95,1,0);
if(loopContent--) setTimeout(loop,50);
}
loop();
})();
(function(){
var loopContent = 80,
loop = function(){
oneCircle(ct,w,h,0.05,-0.1,1,0);
if(loopContent--) setTimeout(loop,50);
}
loop();
})();
(function(){
var loopContent = 80,
loop = function(){
oneCircle(ct,w,h,1,0,1.1,0.95);
if(loopContent--) setTimeout(loop,50);
}
loop();
})();
},4000);
setTimeout(function(){
(function(){
var loopContent = 50,
loop = function(){
oneCircle(ct,w,h,1,0,0.3,0.05);
if(loopContent--) setTimeout(loop,40);
}
loop();
})();
(function(){
var loopContent = 50,
loop = function(){
oneCircle(ct,w,h,0.95,0.7,1,0);
if(loopContent--) setTimeout(loop,40);
}
loop();
})();
(function(){
var loopContent = 50,
loop = function(){
oneCircle(ct,w,h,0.3,0.05,1,0);
if(loopContent--) setTimeout(loop,40);
}
loop();
})();
(function(){
var loopContent = 50,
loop = function(){
oneCircle(ct,w,h,1,0,0.95,0.7);
if(loopContent--) setTimeout(loop,40);
}
loop();
})();
},6000);
setTimeout(function(){
(function(){
var loopContent = 50,
loop = function(){
oneCircle(ct,w,h,1,0,1,0);
if(loopContent--) setTimeout(loop,20);
}
loop();
})();
forgFinished = true;
//ct.save();
},7000);
//draw;
var dr = new draw(ct);
var moveFlag = false;
document.addEventListener('mousedown',function(e){
if(forgFinished){
dr.dPointer(e.clientX,e.clientY);
moveFlag = true;
}
},false);
document.addEventListener('mousemove',function(e){
if(moveFlag) dr.dLine(e.clientX,e.clientY)
},false);http://www.huiyi8.com/clxgt/
document.addEventListener('mouseup',function(e){
dr.stop(e.clientX,e.clientY)
moveFlag = false;
},false);窗帘效果图
document.addEventListener('touchstart',function(e){
dr.dPointer(e.clientX,e.clientY);
moveFlag = true;
},false);
document.addEventListener('touchmove',function(e){
if(moveFlag) dr.dLine(e.clientX,e.clientY)
},false);
document.addEventListener('touchend',function(e){
dr.stop(e.clientX,e.clientY)
moveFlag = false;
},false);
//snow
var sd = document.createElement('div');
document.body.appendChild(sd);
sd.style.cssText += ';position:fixed;top:0;left:0;right:0;bottom:0;z-index:100000;overflow:hidden;';
var ss = [];
var limit = 0;
var stime = setInterval(function(){
if(limit++ == 5){
limit = 0;
var ns = document.createElement('div');
ns.innerHTML = '\u2745';
ns.style.cssText += ';position:absolute;top:-2px;color:#333;opacity:0.8;';
//-webkit-transition:top 0.05 linear;-webkit-transition:left 0.05 linear;-moz-transition:top 0.05 linear;-moz-transition:left 0.05 linear;-o-transition:top 0.05 linear;-o-transition:left 0.05 linear;
ns.ztop = -2;
ns._ztop = 2+Math.random()*5;
ns.zleft = Math.random()*sd.offsetWidth;
ns._zleft = Math.random()<0.5? Math.random() : Math.random()*(-1);
ns.style.fontSize = 16*Math.random()+'px';
ns.style.opacity = 0.5+Math.random()*0.5;
ns.style.left = ns.zleft+'px';
sd.appendChild(ns);
ss.push(ns);
}
for(var i=0;i<ss.length;i++){
ss[i].ztop += ss[i]._ztop;
ss[i].zleft += ss[i]._zleft;
if(ss[i].ztop > sd.offsetHeight){
sd.removeChild(ss[i]);
ss.splice(i,1);
}else{
ss[i].style.top = ss[i].ztop+'px';
ss[i].style.left = ss[i].zleft+'px';
}
}
},20);
//close
setTimeout(function(){
var close = document.createElement('div');
close.innerHTML = '{Stop snowing.}';
close.style.cssText += ';cursor:pointer;text-shadow:0 0 5px #fff;color#aaa;font-size:16px;position:fixed;top:20px;right:20px;font-family:arial,sans-erif;z-index:100002';
document.body.appendChild(close);
close.addEventListener('click',function(){
clearInterval(stime);
document.body.removeChild(d);
document.body.removeChild(sd);
document.body.removeChild(close);
window.zythumsgooglesnowloaded = undefined;
},false);
},5000);
window.zythumsgooglesnowloaded = true;
})();
HTML页面下雪特效的更多相关文章
- JQ_下雪特效
这是一个jQuery下雪特效.特效的代码如下: <style>body{background:black;color:white}</style><script>/ ...
- ViewPager页面切换特效
ViewPager页面切换特效如下效果 看效果: 效果1: 效果2: 下面就开始讲解如何实现这两个页面翻转效果 1.首先你得会ViewPager控件的使用(废话!现在还有人不会使用吗???!!) 2. ...
- js页面载入特效如何实现
js页面载入特效如何实现 一.总结 一句话总结:可以加选择器(里面的字符串)作为参数,这样函数就可以针对不同选择器,就很棒了. 1.特效的原理是什么? 都是通过标签的位置和样式来实现特效的. 二.js ...
- 给你的WordPress站点添加下雪特效
今天看到这个教程,感觉挺应景的,就自己尝试了下,效果还行,没截GIF图 方法: 该js文件已支持https,同时已将其及相关雪花图片进行CDN加速处理,可直接调用. 找到WordPress主题的foo ...
- 58种jQuery模拟CSS3过渡页面切换特效
演示网址 http://www.htmleaf.com/Demo/201503251573.html 点击下载
- 实现pushViewController:animated:的不同页面转换特效
1. 首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO.2. 使用普通的来CATransition实现转换效果,代码如下:CA ...
- 纯css实现下雪特效
//------------------ css ------------------- /*Keyframes*/ @keyframes snow { 0% { background-positio ...
- 利用CSS3实现页面淡入动画特效
利用CSS3动画属性"@keyframes "可实现一些动态特效,具体语法和参数可以网上自行学习.这篇文章主要是实践应用一下这个动画属性,实现页面淡入特效,在火狐24版.chrom ...
- js实现下雪雪花特效
两种下雪特效: 1. <script type="text/javascript"> (function($){ $.fn.snow = function(option ...
随机推荐
- Java中String/StringBuffer/StringBuilder区别(转)
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuild ...
- Fresco的使用<一>
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 引入Fresco dependencies { // 添加依赖 compile 'com.facebook.fresco:fre ...
- cocos2d-x3.0 PageView
.h加入例如以下代码: void pageViewEvent(Ref *pSender, PageViewEventType type); .m layout = Layout::create(); ...
- PHP函数parse_url()如何使用
又是一个非常使用的函数. <?php $url='http://www.cnblogs.com/lovebing'; $data = parse_url($url); var_dump($dat ...
- selenium之 文件上传方法
文件上传是所有UI自动化测试都要面对的一个头疼问题 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别 ...
- Hdu-1565 方格取数(1) (状态压缩dp入门题
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- GG链路过多port不足导致的报错OGG-01223
假设我们GG同步链路在增多.就有可能出现这个报错.在日志中能体现. 2014-05-20 13:32:38 WARNING OGG-01223 TCP/IP error 111 (Connection ...
- Redhat 6.2安装Oracle 11gclient及遇到的问题分析
昨天在Redhat6.2(64 bit)上安装oracle 11.2.0.1.0 client(32 bit),下面是安装中碰到的一些问题及处理过程记录 首先解压缩安装包,会生成一个client文件夹 ...
- python--员工信息管理系统编译及思路
员工管理系统,顾名思义,应该具有增删查改功能.拿到需求后,应该按照一定的流程依次编写,最后达到程序的统一和兼容. 系统需求如下: 文件存储格式如下: id,name,age,phone,job 1,A ...
- Linux面试必问-对照目录内容的命令“Diff”具体解释
dir1下有个log_1.log dir2下有个log_2.log 两个文件例如以下: p_ylwu@VM_194_111_sles10_64:/home/jdxochen/exercise> ...