html5绘制一朵逼真的白云动画特效

html5绘制一朵逼真的白云动画特效

添加时间:2020-12-30 09:49:21
站长推荐丨赞助论坛,可获取海量资源终身免费下载权限奥!
举报 举报
收藏
预览
附件 附件
  • 模板类型模板类型:动画效果
  • 模板颜色模板颜色:初级
  • 下载积分下载积分:28 米粒
  • 下载权限下载权限:

    赞助会员

html5绘制一朵逼真的白云动画特效,蓝蓝的天空中一朵白色模糊云朵飘动着。
html5绘制一朵逼真的白云动画特效
分类:html5 > 动画效果 难易:初级

js代码

<script>
var Cloud = {};

Cloud.init = function() {
  this.width = window.innerWidth;
  this.height = window.innerHeight;
  this.xC = this.width / 2;
  this.yC = this.height / 2;
  this.stepCount = 0;
  this.population = 200;
  this.particles = [];
  
  for (var i = 0; i < this.population; i++) {
    Cloud.birth();
  }
};
Cloud.evolve = function() {
  this.stepCount++;
  this.move();
  this.draw();
};
Cloud.move = function() {
  for (var i = 0; i < this.particles.length; i++) {
    var p = this.particles[i];
    p.x = p.xStart + p.dist * Math.cos(p.speed * this.stepCount);
    p.y = p.yStart + p.dist * Math.sin(p.speed * this.stepCount);
  }
};
Cloud.draw = function() {
  var divs = document.getElementsByClassName('drop');
  for (var i = 0; i < this.particles.length; i++) {
    var particle = this.particles[i],
        div = divs[i];
    
    var r = particle.r,
        x = particle.x - r / 2,
        y = particle.y - r / 2;
    div.style.left = x + 'px';
    div.style.top = y + 'px';
    div.style.height = particle.r + 'px';
    div.style.width = particle.r + 'px';
  }
};
Cloud.birth = function() {
  var speed = 0.2,
      x = this.xC + 220 * (-1 + 2 * Math.random()),
      y = this.yC + 100 * (-1 + 2 * Math.random()),
      minSize = 10,
      maxSize = 150,
      distToCenter = Math.sqrt(Math.pow(x - this.xC, 2) + Math.pow(y - this.yC, 2)),
      size = 170 - 0.65 * distToCenter;
  
  // Create new particle
  var particle = {
    x: x,
    y: y,
    xStart: x,
    yStart: y,
    speed: speed * (-0.5 + Math.random()),
    dist: 15,
    r: size
  };
  
  // Push new particle to global particles array
  this.particles.push(particle);
  
  // Create one more div node and append to DOM
  var div = document.createElement('div');
  div.className = 'drop';
  document.getElementsByTagName('body')[0].appendChild(div);
};

document.addEventListener('DOMContentLoaded', function() {
  
  Cloud.init();
  
  setInterval(function() {
    Cloud.evolve();
  }, 50);
  
});</script>
相关内容推荐
资源求助发帖
查看更多发帖

*

回帖描述:

*

链接类型:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
热点内容推荐
标题:html5绘制一朵逼真的白云动画特效

*

描述:
平均回复时间:3-10分钟
规则介绍:悬赏寻求论坛网友分享资源,站点对分享内容的准确性,合法性,版权等没有足够的监管能力。如果您发现资源不正确,无法使用,不符合法律法律等情况,您可以直接举报资源。站长将尽快核实您的举报,并根据情况,采取封号,退换米粒等处理。

*

回帖描述:

*

链接类型:

*

阅读权限:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
  • 背景波浪
  • 背景波浪
  • 波浪
  • 波浪
客服
在线咨询
周一 至 周日 9:00 ~ 22:00
QQ:1326974360
微信:juyoubuluo6688
客服热线
18205485173
工作日 9:00 ~ 18:00
微信扫码咨询
客户服务
欢迎咨询服务
咨询量较多时,请耐心等待
社群

关注公众号

获取更多资讯

扫码进群(QQ)

与更多大牛交流沟通

0.090746s