美文网首页
利用H5画随机色圆

利用H5画随机色圆

作者: 靖风行 | 来源:发表于2018-03-08 20:56 被阅读15次

忽然想到曾经遇到的一个案例:

在页面上绘制随机数量的圆并填充随机色,但鼠标点击圆时该圆逐渐放大,同时透明度降低,直至消失。

在这里用代码重现下,简单说下步骤:

  • 绘制页面:
    • 生成随机数,根据随机数生成随机颜色
    • 利用svg绘图技术在页面绘制随机数量的圆
    • 将圆填充随机色
  • JS事件:
    • 为每个圆绑定单击事件

    • 创建定时器

代码:

  1. 生成随机数和随机颜色方法
/*获取指定范围内的随机数字*/
function randomNum(min,max){
    var n=Math.random()*(max-min)+min;
    return Math.floor(n)
}
/*生成随机色*/
function randomColor(min,max){
    var r=randomNum(min,max);
    var g=randomNum(min,max);
    var b=randomNum(min,max);
    var a=Math.random();
    return `rgba(${r},${g},${b},${a})`;
}
  1. 利用svg绘图

html:

<svg id="svg" width="1000px"  height="500px"></svg>

JavaScript:

var svg=document.getElementById("svg"); 
for(var i=0;i<50;i++){
    //创建圆元素
    var c=document.createElementNS("http://www.w3.org/2000/svg","circle");
    c.setAttribute("r",randomNum(10,80));
    c.setAttribute("cx",randomNum(0,800));
    c.setAttribute("cy",randomNum(0,400));
    c.setAttribute("fill",randomColor(0,255));
    c.setAttribute("fill-opacity",Math.random());
    svg.appendChild(c)
  //绑定单击事件
  c.onclick=function(){
    var that=this;
    //设置循环定时器
    var timer=setInterval(function(){
      var r=that.getAttribute("r");
      r*=1.05;
      that.setAttribute("r",r);
      var fillOpac=that.getAttribute("fill-opacity");
      fillOpac*=0.9;
      that.setAttribute("fill-opacity",fillOpac);
      //设置循环定时器停止条件
      if(fillOpac<0.001){
        clearInterval(timer);
        timer=null;
        svg.removeChild(that);
      }
    },20)()
  }
}

附上codePen链接

效果图:


效果

相关文章

  • 利用H5画随机色圆

    忽然想到曾经遇到的一个案例: ​ 在页面上绘制随机数量的圆并填充随机色,但鼠标点击圆时该圆逐渐放大,同时透明度...

  • 沙漠剪影

    圆画的不够圆,叠色也不够好,继续努力。

  • Python turtle绘制多彩同心圆

    使用python绘制随机颜色的同心圆用turtle函数画空心圆turtle.circle是从下方开始画圆的,所以要...

  • 渐变的圆

    渐变的圆 描述 利用turtle库的circle(50)函数可以画半径为50的圆,circle(50,steps=...

  • 利用Python画随机水墨图

    最近公司的事情忙的一逼,前段时间学的python再不看看等于又还回去了 上次再老婆大人的创意下,做了一个觉得比较好...

  • 随机色

    ('00000' + (Math.random() * 0x1000000 << 0).toString(16))...

  • 随机色

    UIColor * randomColor= [UIColor colorWithRed:((float)arc4...

  • Bash命令行生成随机密码

    利用/dev/urandom生产随机字符 利用openssl生产随机字符

  • 黑白画2(含步骤)

    临摹含步骤。 1、尺子画正方形。 2、利用身边圆形物品画一个圆。透明胶外圈和内圈都能利用。 3、如果觉得圆小了,可...

  • 2019-03-06 turtle案例之一:画自定义大小的奥运五

    turtle案例之一:画自定义大小的奥运五环 描述 利用turtle库画奥运五环,圆半径为由用户输入,各圆的颜色按...

网友评论

      本文标题:利用H5画随机色圆

      本文链接:https://www.haomeiwen.com/subject/gzqufftx.html