2011-12-15 3 views
1

javascript, css, canvas 또는 svg를 사용하여 애니메이션 마스크 (바이너리 일 수도 있음)를 만드는 방법이 있습니까? 크롬 및 사파리에서html 요소 그룹을 동적으로 마스크/자르기가 가능합니까?

var data = canvas.toDataURL(); 
$('#masked').css("-webkit-mask-image","url("+data+")"); 

그러나 이것은 단지 일을하고 약간의 버그가 :

내가 왔어요 가장 가까운

이를 사용하고 있습니다.

정말 간단한 삼각형 마스크를 그릴 때 CSS를 사용하는 방법이 있습니까?

+0

파이어 폭스에서 (https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content) 당신은 SVG와 함께 할 수 있습니다,하지만 난 더 간단한 크로스 브라우저 솔루션은 없다 인식. – robertc

답변

2

동적 인 경우 캔버스에서 수행하고 원하는 경로를 그립니다. 기본적으로 캔버스는 투명하므로 채워지지 않은 부분은 요소를 아래에 표시합니다. 그러나 정적 마스크가 될 경우 그냥 PNG를 사용하는 것이 좋습니다.

Live Demo

var canvas = document.getElementById("canvas"), 
    ctx = canvas.getContext("2d"); 

canvas.width = canvas.height = 200; 

// make a path for a triangle 
ctx.beginPath(); 
ctx.moveTo(0,0); 
ctx.lineTo(200,0); 
ctx.lineTo(200,200); 
ctx.lineTo(100,50); 
ctx.lineTo(0,200); 
ctx.lineTo(0,0); 
ctx.fill(); 
+0

캔버스 드로잉을 마스크하고 싶지만 html 요소 그룹을 마스크하고 싶을 때이 방법이 효과적입니다. – pixelscript

+0

@pixelscript 괜찮습니다. 내 답변이 업데이트되었습니다. 무엇을 찾고 있는지 알려주세요. – Loktar

+0

배경이 평면 색상이 될지는 모르지만 배경은 실제로 html 요소가 될 것입니다. 하지만 네 생각이 마음에 들어! – pixelscript

관련 문제