2012-06-25 3 views
0

Je veux ajouter élément .item avant élément .content mais juste .item supprime simplement de l'emplacement précédent et lui avant .content.Comment animer un élément tout en utilisant .avant dans jquery

Ce que je veux est d'utiliser une animation qui éliminent lentement élément .item de sa position d'origine et apparaissent lentement sur sa nouvelle position .. comment puis-je faire cela?

$Item = $('.item'); 
$('.content').before($Item); 

Cordialement.

+0

@ Shoaib: vous en mesure de faire un lien de démonstration jsFiddle. – Shakti

+0

http://jsfiddle.net/9gGAT/2/ ce que je suis en train. je veux cacher lentement élément de zone supérieure et montrer lentement avant .content –

Répondre

0

Voulez-vous dire quelque chose comme ceci: jsFiddl Link

+0

votre code me semble bon car il utilise une animation .. mais ce ne sont pas en utilisant la méthode .avant .. ce que je dois faire pour rendre l'aide .before au lieu d'ajouter –

+0

c'est ce que je voulais. http://jsfiddle.net/eQEPw/ –

2

Que diriez-vous quelque chose comme ceci:

$Item = $('.item'); 
$Item.fadeOut(1000, function() { 
    $('.content').before($Item); 
    $Item.fadeIn(1000); 
} 

Le .fadeOut() method s'estompe l'élément sur le temps spécifié (en millisecondes), et à la fin appelle la fonction qui déplace ensuite l'élément et le remet en place.

Démo: http://jsfiddle.net/9gGAT/5/

0

Essayez ceci,

$(function() { 

    $('#btnMove').on('click', function() { 
     $Item = $('.item').fadeOut('slow', function() { 
      $('.content').before($Item); 
      $Item.fadeIn('slow'); 
     }) 

     }); 

    });​ 

Demo

1

Vous pouvez également utiliser les hide et show -méthodes de jquery pour obtenir un effet de glissement. Je placerais également la transition dans sa propre méthode pour qu'elle puisse être réutilisée, de sorte que vous n'ayez pas à écrire plusieurs fois le même code.

var smoothLikeSilk = function(mover, before) { 
    $item = $(mover); 
    $content = $(before); 
    $item.hide('slow', function() { 
    $content.before($item); 
    $item.show('slow'); 
    }); 
} 

$(function(){ 

    $('#btnMove').on('click',function(){ 
    smoothLikeSilk('.item', '.content'); 
    }); 

}); 

http://jsfiddle.net/9gGAT/6/

+0

Pourquoi ne pas le porc entier et écrire 'smoothLikeSilk()' comme un plug-in? Ce serait à peu près la même quantité de code ... – nnnnnn

Questions connexes