Die Methode „clip()“ in Canvas wird verwendet, um beliebige Formen und Größen aus der Original-Leinwand auszuschneiden. Sobald ein Bereich abgeschnitten ist, werden alle nachfolgenden Zeichnungen auf den abgeschnittenen Bereich beschränkt (auf andere Bereiche auf der Leinwand kann nicht zugegriffen werden)
Sie können auch „Speichern“ verwenden, bevor Sie die Methode „clip()“ () zum Speichern verwenden aktuellen Canvas-Bereich und stellen Sie ihn jederzeit in der Zukunft mit der Methode „restore()“ wieder her
Als nächstes verwenden Sie die Methode „clip()“, um einen Suchscheinwerfereffekt zu erzielen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <button id= "btn" >变换</button><button id= "con" >暂停</button><canvas id= "canvas" width= "400" height= "290" style= "border:1px solid black" >当前浏览器不支持canvas,请更换浏览器后再试</canvas><script>btn.onclick = function (){history.go();}
con.onclick = function (){ if (this.innerHTML == '暂停' ){ this.innerHTML = '恢复' ;
clearInterval(oTimer);
} else { this.innerHTML = '暂停' ;
oTimer = setInterval(fnInterval,50);
}
} var canvas = document.getElementById( 'canvas' );
ball = {
x:tempX,
y:tempY,
r:tempR,
stepX:Math. floor (Math.random() * 21 -10),
stepY:Math. floor (Math.random() * 21 -10)
};
IMG = document.createElement( 'img' );
IMG.src=URL;
IMG.onload = function (){
cxt.drawImage(IMG,0,0);
}
}
} function update(){
ball.x += ball.stepX;
ball.y += ball.stepY;
bumpTest(ball);
} function bumpTest(ele){
if (ele.x <= ele.r){
ele.x = ele.r;
ele.stepX = -ele.stepX;
}
if (ele.x >= W - ele.r){
ele.x = W - ele.r;
ele.stepX = -ele.stepX;
}
if (ele.y <= ele.r){
ele.y = ele.r;
ele.stepY = -ele.stepY;
}
if (ele.y >= H - ele.r){
ele.y = H - ele.r;
ele.stepY = -ele.stepY;
}
} function render(){
if (canvas.getContext){ var cxt = canvas.getContext( '2d' );
cxt.save();
cxt.fillStyle = '#000' ;
cxt.fillRect(0,0,W,H);
cxt.arc(ball.x,ball.y,ball.r,0,2*Math.PI);
cxt.fillStyle = '#000' ;
cxt.fill();
cxt.clip();
cxt.restore();
}
}
initial();
clearInterval(oTimer); function fnInterval(){
} var oTimer = setInterval(fnInterval,50);</script>
|
Nach dem Login kopieren
Weitere Canvas-Suchlichteffekte und verwandte Artikel finden Sie auf der chinesischen PHP-Website!