国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

canvas粒子效果

2018-7-27    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請點(diǎn)這里

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      overflow: hidden;
    }
    .container {
      width: 100%;
      height: 100%;
    }
  </style>
</head>
<body>
  <div class="container">
    <canvas id="cs"></canvas>
  </div>
</body>
<script>
  function MoveBalls(element, opts) {
    var canvas = document.querySelector(element);
    this.canvas = canvas;
    this.ctx = canvas.getContext("2d");
    var defaultOpts = {
      total: 100,
      color: "#00D0FF",
      size: 1,
      width: this.canvas.parentNode.clientWidth,
      height: this.canvas.parentNode.clientHeight
    };
    var opts = opts || defaultOpts;
    for (var key in opts) {
        defaultOpts[key] = opts[key];
    };
    for (var key in defaultOpts) {
        this[key] = defaultOpts[key];
    };
    opts = null;
    defaultOpts = null;
    // 鼠標(biāo)坐標(biāo)
    this.coordinate = {
      x: null,
      y: null,
      max: 100
    };
    // 粒子
    this.dots = [];
    // 含鼠標(biāo)坐標(biāo)的粒子數(shù)組
    this.newDots = [];
    // 總數(shù)
    this.count = 0;
    // requestAnimationFrame兼容處理
    window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) {
          window.setTimeout(callback, 1000 / 60);
        };
    this.colorReg = /[rgba()]/g;
    this.init();
  };
  MoveBalls.prototype = {
    constructor: MoveBalls,
    init: function () {
      var _this = this;
      this.freshResize();
      this.mouseEvent();
      this.getDots();
      var timer = setTimeout(function () {
        clearTimeout(timer);
        _this.draw(_this)
      }, 300);
    },
    colorCheck: function () {
      this.canvas.style.color = this.color;
      var colorData = this.canvas.style.color;
      return colorData = colorData.replace(this.colorReg, "").split(",");
    },
    resize: function (self) {
      var _this = self || this;
      _this.canvas.width = _this.width;
      _this.canvas.height = _this.height;
    },
    freshResize: function () {
      this.resize();
      var _this = this;
      window.addEventListener("resize", function () {
        _this.resize(_this);
      });
    },
    mouseEvent: function () {
      var _this = this;
      _this.canvas.addEventListener("mousemove", function (e) {
        var e = e || winodw.event;
        _this.coordinate.x = e.offsetX ? e.offsetX : e.layerX;
        _this.coordinate.y = e.offsetY ? e.offsetY : e.layerY;
      });
      _this.canvas.addEventListener("mouseout", function () {
        _this.coordinate.x = null;
        _this.coordinate.y = null;
      })
    },
    getDots: function () {
      while(this.count < this.total) {
        var x = Math.random() * this.canvas.width;
        var y = Math.random() * this.canvas.height;
        var xMove = Math.random() * 2 - 1;
        var yMove = Math.random() * 2 - 1;
        this.dots.push({
          x: x,
          y: y,
          xMove: xMove,
          yMove: yMove,
          max: 100
        });
        this.count ++;
      }
    },
    draw: function (self) {
      var _this = self || this;
      var ctx = _this.ctx;
      ctx.clearRect(0, 0, _this.canvas.width, _this.canvas.height);
      _this.newDots = [_this.coordinate].concat(_this.dots);
      _this.dots.forEach(function (dot) {
        dot.xMove *= (dot.x > _this.canvas.width || dot.x < 0) ? -1 : 1;
        dot.yMove *= (dot.y > _this.canvas.height || dot.y < 0) ? -1 : 1;
        dot.x += dot.xMove;
        dot.y += dot.yMove;
        // 繪制點(diǎn)
        ctx.save();
        ctx.beginPath();
        ctx.arc(dot.x, dot.y, _this.size, 0, Math.PI * 5);
        ctx.fillStyle = _this.color;
        ctx.fill();
        ctx.restore();
        // 循環(huán)比對粒子間的距離
        for (var i = 0; i < _this.newDots.length; i ++) {
          var newDot = _this.newDots[i];
          // 如果是第一個(gè)點(diǎn),則跳過
          if(newDot === dot || newDot.x === null || newDot.y === null) continue;
          var xDistance = dot.x - newDot.x;
          var yDistance = dot.y - newDot.y;
          var distance = Math.sqrt(Math.pow(xDistance, 2) + Math.pow(yDistance, 2));
          // 顏色深度
          var deep = 0;
          // 小于最小距離,則連線
          if (distance <= newDot.max) {
            // 附近的小球向鼠標(biāo)位置移動(dòng)
            if(newDot === _this.coordinate && distance > (newDot.max / 2)) {
              dot.x -= xDistance * 0.05;
              dot.y -= yDistance * 0.05;
            }
            // 距離越近---值越大---顏色越深
            deep = (newDot.max - distance) / newDot.max;
            // 畫線
            ctx.save();
            ctx.beginPath();
            ctx.lineWidth = deep / 2;
            var colorInfo = _this.colorCheck();
            ctx.strokeStyle = "rgba(" + colorInfo[0] + ", " + colorInfo[1] + ", " + colorInfo[2] + "," + (deep + 0.4) + ")";
            ctx.moveTo(dot.x, dot.y);
            ctx.lineTo(newDot.x, newDot.y);
            ctx.stroke();
            ctx.restore();
          }
        }
        // 將已經(jīng)計(jì)算過的粒子刪除,減少遍歷的總數(shù)量
        _this.newDots.splice(_this.newDots.indexOf(dot), 1);
      });
      window.requestAnimationFrame(function (obj) {
        _this.draw(_this);
      });
    }
  }
  var moveBalls = new MoveBalls("#cs", {total: 66, color: "#00D0FF", size: 1});
</script>
</html>

藍(lán)藍(lán)設(shè)計(jì)www.newchinaweekly.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)


日歷

鏈接

個(gè)人資料

藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.newchinaweekly.com

存檔

欧美网站免费| 亚洲黄色免费视频| 久久久久久久久久一区二区三区| 黄色一级a毛片| 国产精品三级a三级三级午夜| 欧美xxxbbb| 成人午夜国产| 久久久综合视频| 精品国产在天天线2019| 国产精品久久综合av爱欲tv| 欧美日韩福利在线| 免费三片在线播放| 99t1这里只有精品| 福利在线导航136| 91成人免费| 一区二区三区四区在线| 久久九九精品99国产精品| 午夜一区二区三区| 内射毛片内射国产夫妻| 亚洲综合网站久久久| 九色porny在线| 亚洲国产精品日韩专区av有中文| 国产精品免费视频观看| 日韩在线中文视频| 欧美人与动牲交xxxxbbbb| 91porn在线视频| 激情美女网站| 人人精品久久| 成人深夜视频在线观看| 日韩国产精品亚洲а∨天堂免| 国产精品一区二区av| 你懂的在线观看网站| 亚洲人成绝费网站色ww| 特级毛片在线| 日韩专区在线视频| 日韩免费在线观看| 日本成人三级电影网站| 国产福利视频网站| 白丝美女让我捅| 日本在线视频一区二区三区| 不卡高清视频专区| 日韩亚洲精品电影| 99精品人妻少妇一区二区| 成人免费一级片| 国内三级在线观看| 亚洲特级毛片| 欧美性xxxxxx少妇| 国产日韩欧美二区| 日韩一区二区不卡视频| 黄色三级视屏| 久久男人av| 一区二区高清免费观看影视大全| 国产欧美日韩综合一区在线播放 | 欧美亚洲日本国产| 97超碰人人看人人| 国产极品视频在线观看| av一线二线| 免费av一区| 狠狠做深爱婷婷久久综合一区 | 日本一区二区免费在线观看| 亚洲精品少妇久久久久久 | 中文欧美在线视频| 免费在线激情视频| 无码国产精品96久久久久| 成人小电影网站| 久久久电影一区二区三区| 9.1国产丝袜在线观看| 日本一二三四区视频| 在线观看色视频| 久久精品66| 色哟哟一区二区在线观看| 欧美13一14另类| 久久久久久亚洲av无码专区| 黄网址在线观看| 国产成人av福利| 97精品伊人久久久大香线蕉| 久久久国产精品无码| 成人狠狠色综合| 欧美日韩亚洲一区二区三区在线| 日韩小视频在线观看专区| 人人妻人人澡人人爽欧美一区双 | 884aa四虎免费影库4h| 国产免费区一区二区三视频免费 | 国产一区二区精彩视频| 在线观看av网站| 奇米影视一区二区三区| 日韩视频―中文字幕| 免费黄色a级片| jizz国产| 日日噜噜夜夜狠狠视频欧美人 | 亚洲欧美日韩爽爽影院| 日本人69视频| av影音资源网| 国产九九精品| 久久久久久久久久国产| 久久日免费视频| 国产日产精品久久久久久婷婷| 国产一区二区伦理| 国产精品久久久亚洲| 久热精品在线观看| 98色花堂精品视频在线观看| 日韩理论片在线| 视频一区视频二区视频三区高| 亚洲av无码乱码国产精品久久| 四虎国产精品永久在线国在线| 欧美日韩人人澡狠狠躁视频| 永久免费看av| 好妞色妞国产在线视频| 秋霞欧美视频| 一区二区三区视频免费在线观看 | 日本美女视频一区| 成人综合网址| 久久er精品视频| 992kp免费看片| h版电影在线播放视频网站| 在线精品观看| 7777kkkk成人观看| 国产成人在线免费视频| 日韩在线免费| 欧美日韩一区在线观看| 天天干天天操天天做| 午夜精彩视频| 99re亚洲国产精品| 欧美另类网站| 欧美白人最猛性xxxxx| 欧美va天堂在线| 午夜精品理论片| 天天操夜夜操视频| 日韩视频1区| 日韩精品在线第一页| 女尊高h男高潮呻吟| 成人直播在线| 亚洲图片自拍偷拍| 蜜臀久久99精品久久久酒店新书| 91av影院| 久久综合中文字幕| 天天综合中文字幕| 免费看又色又爽又黄网站| 秋霞av亚洲一区二区三| 91视频88av| 亚洲av成人精品一区二区三区在线播放 | 免费av片风间由美在线| 99精品欧美一区| 午夜精品电影在线观看| 日本jizzcom| 国产伦精品一区二区三区在线观看| 波多野结衣成人在线| 中文岛国精品亚洲一区| 久久99伊人| 国产91视觉| www.91av...| 国产精品18久久久久久久久| 欧美日韩精品一区| 两个人日本在线观看视频| 国产精品18久久久久久久久久久久| 欧美精品123| av电影不卡在线观看| 91天堂素人约啪| 久久这里只有精品23| 在线观看国产v片| 夜夜精品视频一区二区| 热久久久久久久久| 麻豆传媒视频在线观看免费| 欧美亚洲综合一区| 国产一二三四区在线| 亚洲青青一区| 九九久久综合网站| 国产视频手机在线| 黄色免费成人| 亚洲伊人一本大道中文字幕| 国产精品18久久久久网站| 国产一区二区视频在线播放| 一区二区三区四区欧美日韩| 又黄又www的网站| 亚洲va国产天堂va久久en| 精品人妻一区二区免费| 色8久久影院午夜场| 亚洲香蕉伊综合在人在线视看| www.国产高清| 久久久久久久久99精品大| 成人午夜两性视频| 日日干夜夜操| 国产精品入口麻豆九色| 男生和女生一起差差差视频| 伊人久久视频| 久久久999成人| 色呦呦中文字幕| 国产经典欧美精品| 国产精品动漫网站| www成人免费观看| 中文字幕欧美视频在线| av免费观看网址| 免费成人在线视频观看| 午夜探花在线观看| 色的视频在线免费看| 亚洲黄页视频免费观看| 亚洲视频一区二区三区四区| 日韩中文字幕区一区有砖一区| 日本老太婆做爰视频| 国产色在线观看|