canvas制作加载动画并打包发布(原生js和react框架)

动画效果:

      

原生js实现:

var mycanvas= document.getElementById('mycanvas');
if(mycanvas.getContext){
  var ctx = mycanvas.getContext('2d');
}
function circle({x,y,r,color}){
  this.x = x;
  this.y = y;
  this.r = r;
  this.color = color
}
circle.prototype.draw=function(){
    ctx.beginPath();
    ctx.fillStyle=this.color;
    ctx.arc(this.x,this.y,this.r,0,Math.PI*2,false); 
    ctx.closePath();
    ctx.fill();
 }

var colorli=['#FB5A1B','#F5C253','#69E012','#36A43D','#143476']
var xli=[20,60,100,140,180];   
var cirli = [];
var rli=[8,6,4,3,0]

function initCircleGroup(){
    for(let i=0;i<xli.length;i++){
      cirli.push(new circle({
        x: xli[i],
        y: 15,
        r: rli[i],
        color: colorli[i]
        }))
     }
  }

function resetCircleGroup(){
  for(let i=0;i<cirli.length;i++){
    cirli[i].r=rli[i];
  }
}

initCircleGroup();

function bigger(cir,i){
   cir.r+=0.4;
  // console.log(cir.r)
    cir.draw()
  if(cir.r>=15){
     flag=0;
     sraf=window.requestAnimationFrame(()=>{
       smaller(cir,i);
     });
  }
} 
var flag=0;
function smaller(cir,i){
  cir.r-=0.4; 
  if(cir.r<0){
    cir.r=0;
  }
  cir.draw();
  if(cir.r===0&&i===4)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在React项目中PDF文件并显示在Canvas中,您需要使用以下步骤: 1. 安装pdfjs-dist库 使用npm或yarn安装pdfjs-dist库。 ``` npm install pdfjs-dist ``` 2. PDF文件 使用pdfjs-dist库PDF文件。 ```javascript import pdfjsLib from 'pdfjs-dist'; pdfjsLib.getDocument(url).promise.then((pdf) => { // pdf对象包含了PDF文件的所有信息 }); ``` 3. 渲染PDF页面 使用pdfjs-dist库将PDF页面渲染到Canvas中。 ```javascript pdf.getPage(pageNumber).then((page) => { const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); const viewport = page.getViewport({ scale: 1 }); canvas.width = viewport.width; canvas.height = viewport.height; const renderContext = { canvasContext: context, viewport: viewport, }; page.render(renderContext); }); ``` 这个例子中,`pageNumber`是要渲染的PDF页面的页码。`canvas`是渲染结果将要呈现的Canvas元素。`viewport`是PDF页面的大小和缩放比例。 4. 完整的React组件 ```javascript import React, { useEffect, useRef } from 'react'; import pdfjsLib from 'pdfjs-dist'; function PdfCanvas({ url, pageNumber }) { const canvasRef = useRef(null); useEffect(() => { const canvas = canvasRef.current; const context = canvas.getContext('2d'); pdfjsLib.getDocument(url).promise.then((pdf) => { pdf.getPage(pageNumber).then((page) => { const viewport = page.getViewport({ scale: 1 }); canvas.width = viewport.width; canvas.height = viewport.height; const renderContext = { canvasContext: context, viewport: viewport, }; page.render(renderContext); }); }); }, [url, pageNumber]); return ( <canvas ref={canvasRef} /> ); } export default PdfCanvas; ``` 这个组件将会渲染指定PDF文件的指定页面到一个Canvas元素中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值