2012-11-15 8 views
5

coderwall.com bu arka plan efektini nasıl yapıyor, küçük bir resim çekiyor, bulanıklaştırıyor ve görüntü alanının% 100'üne kadar boyutlandırıyor. İşte bir örnek: https://coderwall.com/p/on5ojqCoderwall bulanık arka plan efektiyle tuvali

Denedim:

<canvas class="blur" src="https://d3levm2kxut31z.cloudfront.net/assets/locations/Mexico-1c39f581666a50a97c5130e13837ff20.jpg" width="300" height="200"></canvas> 

Daha sonra aşağıdaki css ekledi:

.blur { 
    min-width: 100%; 
    min-height: 100%; 
    position: fixed; 
    top: 0; 
    left: 0; 
    z-index: -2; 
    opacity: 0.7; 
} 

Ama çalışmıyor.

aşağıdaki jsFiddlehttp://jsfiddle.net/RDdbt/1/

+2

https://github.com/ceramedia/examples/blob/gh-pages/canvas-blur/v5/canvas-image.js – Paradise

+0

JavaScript'i uygulamaya çalıştım, ancak bir hatayla karşılaştım. İşte güncellenmiş jsFiddle http://jsfiddle.net/RDdbt/3/. Sorunu görüyor musunuz? Teşekkürler. – Justin

+0

Bunu hiç anladın mı? Çalıştırmayı başardım ama jsfiddle örneğinizde kullanılan betikle değil. Orijinal senaryoyu kullandım ... Yardımın hoşuna giderse haberim olsun! –

cevap

7

bu deneyin bakınız: etki onların komut kontrol eğer bu bağlantıyı bulacaksınız, css ama js ilişkili değildir

var CanvasImage=function(e,t){ 
    this.image=t, 
    this.element=e, 
    this.element.width=this.image.width, 
    this.element.height=this.image.height; 
    var n=navigator.userAgent.toLowerCase().indexOf("chrome")>-1, 
    r=navigator.appVersion.indexOf("Mac")>-1; 
    n&&r&&(this.element.width=Math.min(this.element.width,300),this.element.height=Math.min(this.element.height,200)), 
    this.context=this.element.getContext("2d"), 
    this.context.drawImage(this.image,0,0) 
}; 

CanvasImage.prototype={ 
    blur:function(e){ 
     this.context.globalAlpha=.5; 
     for(var t=-e;t<=e;t+=2) 
      for(var n=-e;n<=e;n+=2) 
       this.context.drawImage(this.element,n,t), 
      n>=0&&t>=0&&this.context.drawImage(this.element,-(n-1),-(t-1)); 
      this.context.globalAlpha=1 
     } 
}, 

$(function(){ 
    var image,canvasImage,canvas; 
    $(".blur").each(function(){ 
     canvas=this, 
     image=new Image, 
     image.onload=function(){ 
      canvasImage=new CanvasImage(canvas,this), 
      canvasImage.blur(4) 
     }, 
     image.src=$(this).attr("src"); 
    }); 
}); 

http://jsfiddle.net/RDdbt/6/