2011-07-21 136 views
3

我想动态创建div,将它们附加到正文并设置jQuery动画。动态创建动画元素

这是其中的元素创建:

function drawSpot() 
{ 
var myH1 = document.createElement("div"); 
myH1.style.position = "absolute"; 
myH1.style.top = GetRandom(0,100)+"%"; 
myH1.style.left = GetRandom(0,100)+"%"; 
myH1.style.width="40px"; 
myH1.style.height="40px"; 
$("body").append(myH1); 

} 

并从他们被附加到身体的时候,我要开始动画。

回答

7

如果你已经使用jQuery,你应该做这一切的方式:

$('<div>', { 
    css: { 
     position: 'absolute', 
     top:  GetRandom(0,100)+'%', 
     left:  GetRandom(0,100)+'%', 
     width:  '40px', 
     height:  '40px' 
    } 
}).appendTo(document.body).animate({ 
    left: '100%' // for instance 
}, 2000); 

通过使用.appendTo(),您仍然可以引用您的原始对象,并且可以链接方法。

参考:jQuery constructor.appendTo().animate()

演示http://jsfiddle.net/dkuVu/

+0

+1,该死的..你是太快了... –

+0

@Gaby:战胜饥饿国家联盟,问题是14分钟老搭档! :) – jAndy

+0

@jAndy ..不要吹我的掩护伙计..:p –

1

使用jQuery的创作元素,并将其附加在制作动画:

function drawSpot() { 
var myH1 = $("<div>").css({ position: "absolute", 
          top:  GetRandom(0,100)+"%", 
          left:  GetRandom(0,100)+"%", 
          width: 40, 
          height: 40 }); 
$("body").append(myH1.animate(...)); 
} 

http://jsfiddle.net/nagCf/

1

这应该工作

function drawSpot() 
{ 
    var myH1 = '<div id="newDiv">Some Text</div>'; 
    $("body").append(myH1); 

    $("#newDiv").css({'position' : 'absolute', 
        'top' : GetRandom(0,100)+"%", 
        'left' :GetRandom(0,100)+"%", 
        'width':'40px', 
        'height':'40px' 
        }); 

    $("#newDiv").hide().fadeIn(500); 
}