• Raphael入门实例:动画与箭头


    raphael 实例

    动画

    隐藏和显示参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var c = paper.circle(50, 50, 40);
     
    function hide() {
      c.hide();
      setTimeout(show, 1000);
    }
     
    function show() {
      c.show();
      setTimeout(hide, 1000);
    }
     
    setTimeout(hide, 1000);
     

    改变属性参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var c = paper.circle(50, 50, 40);
     
    function change_attr() {
      //改变颜色
      c.attr('stroke', Raphael.hsb(Math.random(), 1, 1));
     
      setTimeout(change_attr, 1000);
    }
     
    setTimeout(change_attr, 1000);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    var c = paper.circle(50, 50, 40);
     
    function change_one_attr() {
      //改变一个属性
      c.attr('stroke', '#FFF');
     
      setTimeout(change_muti_attr, 1000);
    }
     
    function change_muti_attr() {
      //改变多个属性
      c.attr({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
        r: 10 * (Math.random() * 5 + 1),            //半径
        stroke: Raphael.hsb(Math.random(), 1, 1)  //颜色
      });
     
      setTimeout(change_one_attr, 1000);
    }
     
    setTimeout(change_one_attr, 1000);
     
    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
    // 绘制箭头
    var c = paper.path("M10 10L100 10").attr({
      'arrow-end':'classic-wide-long',
      stroke: "#fff",
      "stroke-width": 2
    });
     
    var c = paper.path("M10 30L100 30").attr({
      'arrow-end':'block-wide-long',
      stroke: "#f00",
      "stroke-width": 2
    });
     
    var c = paper.path("M10 50L100 50").attr({
      'arrow-end':'open-wide-long',
      stroke: "#ff0",
      "stroke-width": 2
    });
     
    var c = paper.path("M10 70L100 70").attr({
      'arrow-end':'oval-wide-long',
      stroke: "#0f0",
      "stroke-width": 2
    });
     
    var c = paper.path("M10 90L100 90").attr({
      'arrow-end':'diamond-wide-long',
      stroke: "#0ff",
      "stroke-width": 2
    });
     

    动画参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;       // 播放动画,持续时间1000毫秒
     
      c.animate({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms);
     
      setTimeout(animate, 2000);
    }
     
    setTimeout(animate, 1000);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // 效果同上,但是利用了动画结束时的回调函数
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;
     
      c.animate({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms, function(){
        setTimeout(animate, 1000);
      });
    }
     
    setTimeout(animate, 1000);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 效果同上,使用动画对象
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;
      var anim = Raphael.animation({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms, function(){
        setTimeout(animate, 1000);
      });
     
      c.animate(anim);
    }
     
    setTimeout(animate, 1000);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 效果同上,调用动画对象的delay()方法
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;
      var anim = Raphael.animation({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms, function(){
        setTimeout(animate, 0);
      });
     
      c.animate(anim.delay(1000));
    }
     
    setTimeout(animate, 0);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // 动画对象的过渡效果及repeat()方法
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 2000;
      var anim = Raphael.animation({
        50: {
          r: 60,
          stroke: '#f00'
        },
        100: {
          r: 40,
          stroke: '#fff'
        }
      }, ms);
     
      c.animate(anim.repeat("Infinity")); //Infinity为无限次
    }
     
    animate();
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 设置效果的曲线类型
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;
      var easing = 'elastic';
     
      c.animate({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms, easing, function(){
        setTimeout(animate, 1000);
      });
    }
     
    setTimeout(animate, 1000);
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 设置随机曲线类型
    var c = paper.circle(50, 50, 40);
     
    function animate() {
      var ms = 1000;
      var easing = ['elastic', '', 'bounce', 'ease-in-out'][Math.round(Math.random() * 3)];
     
      c.animate({
        cx: 50 + Math.random() * 120,               //圆心x坐标
        cy: 50 + Math.random() * 100,               //圆心y坐标
      }, ms, easing, function(){
        setTimeout(animate, 1000);
      });
    }
     
    setTimeout(animate, 1000);
  • 相关阅读:
    2019学期第十周编程总结
    2019学期第九周编程总结
    第七次作业
    第六次作业
    第五次作业
    jsp第四次作业
    3.10
    3.4
    3.3jsp作业
    最后一次安卓作业
  • 原文地址:https://www.cnblogs.com/stephenykk/p/3564000.html
Copyright © 2020-2023  润新知