demo 微信毛玻璃效果
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>canvas catch red</title>
- <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>
- <link href="blur.css" rel="stylesheet" type="text/css">
- <meta name="viewport"
- content=" height = device-height,
- width = device-width,
- initial-scale = 1.0,
- minimum-scale = 1.0,
- maximum-scale = 1.0,
- user-scalable = no"/>
- </head>
- <body>
- <div id="blur-div">
- <img id="blur-img" src="data:image.jpg">
- <canvas id="canvas"></canvas>
- <a id="rest-button" href="javascript:rest()" class="button">reset</a>
- <a id="show-button" href="javascript:show()" class="button">show</a>
- </div>
- <script src="blur.js" type="text/javascript"></script>
- </body>
- </html>
- var canvasWidth = window.innerWidth;
- var canvasHeight = window.innerHeight;
- var canvas = document.getElementById("canvas");
- var context = canvas.getContext("2d");
- canvas.width = canvasWidth;
- canvas.height = canvasHeight;
- var image = new Image();
- var radius = 50;
- var clippingRegion = {x:400, y: 200, r:50};
- var leftMargin = 0;
- var topMargin = 0;
- var timer = null;
- image.src = "image.jpg";
- image.onload = function (e){
- $("#blur-div").css("width",canvasWidth+"px");
- $("#blur-div").css("height",canvasHeight+"px");
- $("#blur-img").css("width",image.width+"px");
- $("#blur-img").css("height",image.height+"px");
- leftMargin = (image.width - canvas.width)/2;
- topMargin = (image.height - canvas.height)/2;
- $("#blur-image").css("top",String(-topMargin)+"px");
- $("#blur-image").css("left",String(-leftMargin)+"px");
- initCanvas()
- }
- function initCanvas(){
- var theLeft = leftMargin<0?-leftMargin:0;
- var thetop = topMargin<0?-topMargin:0;
- clippingRegion = { x: Math.random()*(canvas.width - 2*radius - 2*theLeft) + radius + theLeft,
- y: Math.random()*(canvas.height - 2*radius - 2*thetop) + radius + thetop, r:radius };
- draw(image, clippingRegion);
- }
- function setClippingRegion(clippingRegion){
- context.beginPath();
- context.arc(clippingRegion.x, clippingRegion.y, clippingRegion.r, 0, Math.PI *2,false);
- context.clip();
- }
- function draw(image, clippingRegion){
- context.clearRect(0,0,canvas.width, canvas.height);
- context.save();
- setClippingRegion(clippingRegion);
- context.drawImage( image,
- Math.max(leftMargin,0),
- Math.max(topMargin, 0),
- Math.min(canvas.width,image.width), Math.min(canvas.height,image.height),
- leftMargin<0?-leftMargin:0,
- topMargin<0?-topMargin:0,
- Math.min(canvas.width,image.width), Math.min(canvas.height,image.height) );
- context.restore();
- }
- function rest(){
- if( timer != null ){
- clearInterval(timer)
- timer = null
- }
- initCanvas()
- };
- function show(){
- if(timer == null){
- timer = setInterval(
- function (){
- clippingRegion.r +=20;
- if(clippingRegion.r > 2*Math.max(canvas.width,canvas.height)){
- clearInterval(timer);
- }
- draw(image,clippingRegion);
- },30);
- }
- };
- canvas.addEventListener("touchstart",function(e){
- e.preventDefault()
- });
- *{
- margin:0 0;
- padding:0 0;
- }
- #blur-div{
- overflow: hidden;;
- margin:0 auto;
- position: relative;
- }
- #blur-img{;
- margin:0 auto;
- display: block;
- filter: blur(20px);
- -webkit-filter: blur(20px);
- -moz-filter: blur(20px);
- -ms-filter: blur(20px);
- -o-filter: blur(20px);
- position: absolute;
- top:0px;
- left:0px;
- z-index:0 ;
- }
- #canvas{
- display: block;
- margin:0 auto;
- position: absolute;
- left: 0px;
- top:0px;
- z-index:;
- }
- .button{
- display:block;
- position: absolute;
- z-index:;
- width:100px;
- height:30px;
- color: white;
- text-decoration: none;
- text-align: center;
- line-height: 30px;
- border-radius: 5px;
- cursor: pointer;
- }
- #rest-button{
- left:50x;
- bottom: 20px;
- background-color: #058;
- }
- #rest-button:hover{
- background-color: #047;
- }
- #show-button{
- right:50px;
- bottom:20px;
- background-color: #085;
- }
- #show-button:hover{
- background-color: #074;
- }
demo 微信毛玻璃效果的更多相关文章
- 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果
去年盛夏之时,曾写过“小tip: 使用CSS将图片转换成黑白”一文,本文的模式以及内容其实走得是类似路线.CSS3 → SVG → IE filter → canvas. 前段时间,iOS7不是瓜未熟 ...
- [转] 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果 ---张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3804 去年盛夏之时, ...
- iOS 实现毛玻璃效果
话说苹果在iOS7.0之后,很多系统界面都使用了毛玻璃效果,增加了界面的美观性,比如下图的通知中心界面; 但是其iOS7.0的SDK并没有提供给开发者实现毛玻璃效果的API,所以很多人都是通过一些别人 ...
- CSS技巧收集——毛玻璃效果
先上 demo和 源码 其实毛玻璃的模糊效果技术上比较简单,只是用到了 css 滤镜(filter)中的 blur 属性.但是要做一个好的毛玻璃效果,需要注意很多细节. 比如我们需要将上图中页面中间的 ...
- 使用UIVisualEffectView创建毛玻璃效果
UIVisuaEffectView :继承自UIView,可以看成是专门用于处理毛玻璃效果的视图,只要我们将这个特殊的View添加到其他视图(eg. ImageView )上面,被该UIVisuaEf ...
- CSS 奇思妙想 | 全兼容的毛玻璃效果
通过本文,你能了解到 最基本的使用 CSS backdrop-filter 实现磨砂玻璃(毛玻璃)的效果 在至今不兼容 backdrop-filter 的 firefox 浏览器,如何利用一些技巧性的 ...
- 使用CSS3制作导航条和毛玻璃效果
导航条对于每一个Web前端攻城狮来说并不陌生,但是毛玻璃可能会相对陌生一些.简单的说,毛玻璃其实就是让图片或者背景使用相应的方法进行模糊处理.这种效果对用户来说是十分具有视觉冲击力的. 本次分享的主题 ...
- 解决css3毛玻璃效果(blur)有白边问题
做一个登录页,全屏背景图毛玻璃效果,实现方法如下: HTML: <body> <div class="login-wrap"> <div class= ...
- Swift 之模糊效果(毛玻璃效果,虚化效果)的实现
前言: 之前项目中有用到过Objective-C的的模糊效果,感觉很是不错,而且iOS8之后官方SDK也直接提供了可以实现毛玻璃效果的三个类:UIBlurEffect.UIVibrancyEffect ...
随机推荐
- bzoj 2671 莫比乌斯反演
Calc Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 451 Solved: 234[Submit][Status][Discuss] Descr ...
- Java并发笔记(一)
1. lock (todo) 2. 写时复制容器 CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个 ...
- 日志组件Log4Net
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSec ...
- number(NOIP模拟赛Round 3)
好吧,神奇的题目.. 原题传送门 这道题目,神奇的字符单调栈.. 首先预处理出1~n个数(大家都会.) 然后塞进字符串里,输出答案(水~) 然后.. 我们需要将所有的字符存入单调栈中,然后乱搞,就可以 ...
- ES6 - Babel编译环境搭建
都看到这里了,我就不写什么node环境安装之类的了. 直接从新建项目文件夹后开始吧! 安装依赖: 命令行cd到项目文件夹之后,执行以下命令:(mac记得前边加sudo) npm init –y // ...
- 应用程序已被Java安全阻止
提示 您的安全设置已阻止自签名的应用程序运行 控制面板-JAVA-安全-例外站点-https://域名或IP/或http://域名或IP/,注意结尾必须要加/否则还是会一直提示被阻止
- Python学习杂记_12_函数(三)
内置函数 Python有很多内置函数,以下这些是常用且必须要掌握的: 强制类型转换: bool() # 把一个对象转换成布尔类型 int() # 整形 float() # 小数 str() # 字符 ...
- 【bugfree】安装
我用的是WIN8系统 首先要安装XAMPP,开始里面的Apache和MySQL服务. 在运行Apache服务时报错: ----------------------------------------- ...
- NYOJ16 矩形嵌套 【DAG上的DP/LIS】
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c ...
- POJ 1741 Tree 树的分治
原题链接:http://poj.org/problem?id=1741 题意: 给你棵树,询问有多少点对,使得这条路径上的权值和小于K 题解: 就..大约就是树的分治 代码: #include< ...