红包模糊
来源:互联网 发布:java log4j2 配置 编辑:程序博客网 时间:2024/04/29 03:33
<!DOCTYPE html>
<html>
<head>
<metacharset="utf-8" />
<metaname="viewport" content="height=device-height,width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<title>模糊红包效果</title>
<scripttype="text/javascript" src="js/jquery-2.1.3.min.js"></script>
</head>
<style type="text/css">
*{
margin:0px;
padding:0px;
}
#blur-div{
width:350px;
height:220px;
margin:0 auto;
position:relative;
overflow:hidden;
}
.button{
display:block;
position:absolute;
z-index:200;
/*按钮在最上面*/
width:60px;
height:30px;
color: white;
text-decoration:none;
text-align:center;
line-height:30px;
border-radius:2px;
}
#reset-button{
left:40px;
bottom:20px;
background-color:#058;
}
#reset-button:hover{
background-color:#047;
}
#show-button{
right:40px;
bottom:20px;
background-color:#085;
}
#show-button:hover{
background-color:#074;
}
#canvas{
display:block;
margin:0 auto;
position:absolute;
left:0px;
top:0px;
/*canvas在image之上,在按钮下,z-index大于image,小于btn*/
z-index:100;
}
#blur-image{
display:block;
width:350px;
height:220px;
margin:0 auto;
/*模糊效果*/
filter: blur(20px);
-webkit-filter: blur(20px);
-moz-filter: blur(20px);
-ms-filter: blur(20px);
-o-filter: blur(20px);
position:absolute;
left:0px;
top:0px;
z-index:0;
}
</style>
<body>
<divid="blur-div">
<imgid="blur-image" src="img/gd.jpg" />
<canvasid="canvas"></canvas>
<!--大小要在js设置,不要在css设置-->
<ahref="javascript:reset()" class="button" id="reset-button">重置</a>
<ahref="javascript:show()" class="button" id="show-button">显示</a>
</div>
<scripttype="text/javascript">
varcanvasWidth = window.innerWidth;//最外层div宽=窗口宽高,为了适应
varcanvasHeight = window.innerHeight;
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
//设置canvas大小和最外层div宽高一样
canvas.width= canvasWidth;
canvas.height = canvasHeight;
//用canvas显示清晰图像
varimage = new Image();
var radius = 30;
//剪辑区域
varclippingRegion;
image.src= "img/a11.jpg";
//因为图像加载需要时间,所以用onload方法,等待图片加载完成后再执行函数
image.onload= function(e) {
//blur-div 和canvas宽高调整
$('#blur-div').css("width", canvasWidth+ "px");
$('#blur-div').css("height", canvasHeight+ "px");
$('#blur-image').css("width",image.width +"px");
$('#blur-image').css("height",image.height +"px");
initCanvas();
}
functioninitCanvas() {
//重置剪辑区域,归位,随机
clippingRegion= { //保证剪辑区域一定在有图像的地方
x:Math.random() * (canvas.width - 2 * radius) + radius, //30-320 0-width 减掉半径30 350-30*2
y:Math.random() * (canvas.height - 2 * radius) + radius, //30-190 0-height 减掉半径30 220-30*2
r:radius
};
draw(image, clippingRegion);
}
//设置剪辑区域
functionsetClippingRegion(clippingRegion) {
context.beginPath();//创建路径
context.arc(clippingRegion.x, clippingRegion.y, clippingRegion.r,0, Math.PI * 2,false); //画圆形
context.clip();
}
functiondraw(image,clippingRegion) {
context.clearRect(0,0, canvas.width, canvas.height);
context.save();
//图像绘制前,确定剪辑区域
setClippingRegion(clippingRegion);
context.drawImage(image,0, 0); //图片大于canvas
context.restore();
}
//完全显示清晰图像,复用draw函数,将剪辑区域变大
functionshow() {
//添加动画,此函数有缺点
clippingRegion.r= radius; //给半径归位
vartheAnimation = setInterval(function() {
console.log("anima");
clippingRegion.r+= 20; //慢慢扩大显示
//边界条件
if(clippingRegion.r> 2 * Math.max(canvas.width, canvas.height)) {//停止动画,否则函数执行不停止1000
clearInterval(theAnimation);
}
draw(image, clippingRegion);
}, 30);
}
//重置,initCanvas
functionreset() {
initCanvas();
}
</script>
</body>
</html>
- 红包模糊
- 模仿微信红包模糊照片
- 红包!!?
- 红包
- “红包”
- 红包!红包!
- 高斯模糊算法浅析-----------微信朋友圈的红包照片有感而发
- 模糊
- 模糊
- 模糊
- 模糊
- 红包快手-秒抢微信红包
- 红包博弈论
- 墨子红包
- 红包算法
- 红包来袭!!!
- 红包算法
- 红包算法
- canvas图像叠加
- UIWebView页面加载出错,我们应该怎么解决呢?
- PHP各个版本下载(未编译 tr.gz)
- poj 2955 Brackets (区间DP)
- iOS开发中的这些权限,你搞懂了吗?
- 红包模糊
- 滑动变色
- JavaScript查找字符串内所有正整数
- Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake(dp + BIT)
- iOS 远程消息推送 APNS推送原理和一步一步开发详解篇(新手推荐)
- java设计模式之责任链模式
- C#的抽象类和接口的区别,在什么时候使用才合适?
- shell脚本学习
- 星星闪烁