gpt4 book ai didi

jquery - 动画 stokeRect 不透明 Canvas

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:23 25 4
gpt4 key购买 nike

基本上,我只想为我正在构建的网站淡入动画。

drawRect: function(object) {
var canvas = _site.vars.canvas;
var context = canvas.getContext('2d');
context.globalAlpha = 0.2;
context.strokeStyle = '#ffffff';
if (!context.setLineDash) {
context.setLineDash = function() {}
}
context.setLineDash([5, 2]);
context.strokeRect(object.x, object.y, object.w, object.h);
};

这只是我的插件的方法之一,但这是绘制矩形的主要代码。

我基本上有一个延迟为 0.4 秒的循环,并不断使用新的 x、y、w、h 参数调用此函数。

这一切都很好,但我真的很想为它们添加动画,而不是仅仅让它们出现。

我一直在阅读有关此内容的信息,但我似乎真的找不到任何相关内容。

如果有人能为我指出正确的方向,那就太好了,我正在开发的网站是 here .

最佳答案

这是一个淡出超过 300 毫秒的动画循环(以适应 400 毫秒的调整矩形大小):

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


var x=50;
var y=50;
var w=100;
var h=75;

var startTime;

requestAnimationFrame(fadeIn);

$("#test").click(function(){
startTime=null;
ctx.clearRect(0,0,canvas.width,canvas.height);
requestAnimationFrame(fadeIn);
});



function fadeIn(time){
if(!startTime){startTime=time;}
var elapsed=time-startTime;
if(elapsed>300){
ctx.strokeRect(x,y,w,h);
return;
}
requestAnimationFrame(fadeIn);
ctx.globalAlpha=elapsed/300/1.50;
ctx.clearRect(x-2,y-2,w+2,h+2);
ctx.strokeRect(x,y,w,h);
ctx.globalAlpha=1.00;
}
body{ background-color: ivory; }
canvas{border:1px solid red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="test">Rerun</button><br>
<canvas id="canvas" width=300 height=300></canvas>

关于jquery - 动画 stokeRect 不透明 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26131036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com