.appendTo圈内div

时间:2016-06-15 04:34:33

标签: jquery dynamic append

我正在尝试将某些东西作为更大项目的一部分进行开发,但不幸的是很早就停留了。

我试图让动态创建的div只在#circle div中,并将它们限制为20。

这是一个代码...

'http://codepen.io/phillip_vale/pen/QENmMN?editors=1111'

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

您需要测试点是否在圆圈中

function makeDiv() {

var divsize = Math.floor((Math.random() * 20) + 4);
  var a = Math.random();

  $newdiv = $('<div class="test">').css({
    'width': divsize + 'px',
    'height': divsize + 'px',
    'opacity': a
  });

  var posx = (Math.random() * ($(document).width() - divsize)).toFixed();
  var posy = (Math.random() * ($(document).height() - divsize)).toFixed();
 if((posx-200)*(posx-200)+(posy-200)*(posy-200) < 200*200) {

  $newdiv.css({
    'position': 'absolute',
    'left': posx + 'px',
    'top': posy + 'px',
    'display': 'none'
  }).appendTo('#circle').fadeIn(1000, function() {
    makeDiv();
    console.log(posx, posy);
  });
   return 1
    }
     return 0;
}
var x = 0
 while(x < 20) {
   x = x+makeDiv();
     }

http://codepen.io/anon/pen/RRRNoN?editors=1111

或者这个用于动画:

function makeDiv() {

var divsize = Math.floor((Math.random() * 20) + 4);
  var a = Math.random();

  $newdiv = $('<div class="test">').css({
    'width': divsize + 'px',
    'height': divsize + 'px',
    'opacity': a
  });

  var posx = (Math.random() * ($(document).width() - divsize)).toFixed();
  var posy = (Math.random() * ($(document).height() - divsize)).toFixed();
 if((posx-200)*(posx-200)+(posy-200)*(posy-200) < 170*170) {

  $newdiv.css({
    'position': 'absolute',
    'left': posx + 'px',
    'top': posy + 'px',
    'display': 'none'
  });
   return $newdiv
    }
     return 0;
}
var x = 0
 while(x < 20) {
 var div = makeDiv();
if(div !=0) {
   x = x+1;
   div.appendTo('#circle').delay(1000*x).fadeIn(1000);
  }
     }

http://codepen.io/anon/pen/vKKEJO?editors=1111

了解更多info