2013-11-14 6 views
0

эй У меня есть div, который я доставляю в тело моего HTML-документа, после того как я его добавлю, я бы хотел запустить анимационную функцию, но по какой-то причине анимация никогда не срабатывает ,jquery preend then animate div

Сейчас я сцепление их вместе, как так:

 $(".role-1").prependTo("body").animate({ 
      position:fixed, 
      top:0 
     },{ 
      duration:300, 
      queue:false 
     }); 

перед именем работает отлично, анимация просто никогда не работает, я не знаю, почему, какие мысли? Благодарности

+0

Вы должны опубликовать демо. Слишком много других факторов, которые могут вступить в игру. –

ответ

1

вы можете изменить положение к неподвижному с .css, как этот

$(".role-1").prependTo("body").css({position:"fixed"}).animate({ 
     top:0 
     },{ 
     duration:300, 
     queue:false 
});  

CSS

.role-1{ 
    top:500px; //if it is 0px it will not animate 
} 

http://jsfiddle.net/pNBQk/

+0

Почему это работает, и с анимированием это не так? – loriensleafs

+0

он может работать с анимацией, но вам нужно установить позицию по умолчанию в css, как это [http://jsfiddle.net/pNBQk/1/](http://jsfiddle.net/pNBQk/1/), но я использую .css, чтобы установить позицию по умолчанию, зафиксированную в ответе –

1

I think this is what you were trying to do.

JS:

$('<div>').prependTo("body").animate({ 
    top: '40px' 
}, 300); 

CSS:

div { 
    height: 100px; 
    width: 100px; 
    background: blue; 
    position: relative; 
} 

Это здесь, будет работать, но там нет анимации, потому что я создал не имеет высоту или ширину и уже находится в верхней части тела.

$("<div></div>").prependTo("body").animate({ 
    position:'fixed', 
    top:0 
},{ 
    duration:300, 
    queue:false 
});