zoukankan      html  css  js  c++  java
  • canvas 实现飘浮桥效果

    var canvas = document.getElementById('canvas');
    var cxt = canvas.getContext('2d');

    var timer;
    var iStop = false;
    var radius = 50;
    var transX = 0;
    var step = -1;

    function draw(){

    cxt.save();
    cxt.translate(transX, 300);
    cxt.beginPath();
    cxt.moveTo(0, 0);
    for(var i=0; i<2160; i++){
    var y = radius*Math.sin(i*Math.PI/180);
    cxt.lineTo(i, y);
    }
    cxt.stroke();
    cxt.closePath();
    cxt.restore();

    cxt.save();
    cxt.strokeRect(50, 300-Math.abs(radius)-50, 900, 50);
    cxt.restore();

    radius += step;
    if(radius == 50 || radius == -50){
    step = -step;
    }
    transX -= 3;
    if(transX <= -1080){
    transX = 0;
    }
    }

    function erase(){
    cxt.clearRect(0, 0, canvas.width, canvas.height);
    }

    window.requestAnimationFrame =
    window.requestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.msRequestAnimationFrame;

    window.cancelRequestAnimationFrame =
    window.cancelRequestAnimationFrame ||
    window.mozCancelRequestAnimationFrame ||
    window.webkitCancelRequestAnimationFrame ||
    window.msCancelRequestAnimationFrame;

    function animate() {
    erase();
    draw();
    if(iStop){
    cancelRequestAnimationFrame(timer);
    }else{
    timer = requestAnimationFrame(animate);
    }
    }

    animate();

  • 相关阅读:
    第十五篇 Django Rest Framework
    第十四篇 Mongodb数据库
    Redis相关操作
    celery
    vscode
    VScode-HTML
    第十三篇 Scrapy框架
    第十二篇 Flask 【进阶篇】 插件-SQLAlchmey等
    附录:1装饰器-functools使用
    第十二篇 Flask 基础篇
  • 原文地址:https://www.cnblogs.com/liubu/p/7846943.html
Copyright © 2011-2022 走看看