2010-12-07 4 views
1

Je cherche de l'aide pour configurer une page avec des divs/cases repositionnelles.jQuery div/box reposition (similaire aux capsules hubpages)

Je voudrais que la fonctionnalité similaire à la façon dont vous pouvez capsules de configuration avec HubPages, qui comprend des boîtes en mouvement:

  1. Up
  2. vers le bas
  3. flotteur droit (faire 2 colonnes)
  4. Modification pleine largeur (si flottant à droite)
  5. Enlever boîte
  6. Insérer de nouvelles boîtes

Voir capture d'écran par exemple:

http://imgur.com/n4YRC.png

Je ne veux, mais plutôt avoir de ne pas utiliser le glisser-déposer jQuery UI, boutons pour repositionner les cases.

Exemple vidéo: http://www.youtube.com/watch?feature=player_detailpage&v=7SnOtOwTYoE#t=74s

+0

vous dites que vous ne voulez pas jquery glisser-déposer ui, mais encore vous voulez glisser-déposer (de ce que J'ai compris) et vous avez étiqueté votre question jQuery et jquery-ui. Ou attendre était ne pas une faute de frappe? ou est-ce que je ne décris pas votre question correctement? – Trufa

+0

Oui, peut-être que je ne décris pas le meilleur. Si vous avez déjà configuré un Hub avec HubPages, vous saurez ce que je veux dire. Il peut utiliser l'interface utilisateur de jQuery si cela fonctionne comme j'en ai besoin. Ce n'est pas un glisser-déposer exactement, mais des boutons qui réorganisent les cases: http://imgur.com/n4YRC.png – Ricky

+0

Donc vous voulez une 'grille' prédéfinie où vous pouvez utiliser des boutons pour déplacer un élément d'une cellule à l'autre . Par exemple, vous cliquez sur le bouton «droit» et l'élément saute au bouton de la colonne de droite. Est-ce correct? – rcravens

Répondre

1

Vous pourriez faire une manipulation DOM quelque peu faible niveau en utilisant seulement jQuery. Par exemple, le déplacement d'une boîte en place:

$('a.move-up').click(function(){ 
    var prev = $(this).parent().prev();  // get the preceding element 
    var self = $(this).parent().clone(true); // copy the parent element, including all event handlers attached to itself and its children 
    $(this).parent().remove();    // remove the parent 
    prev.before(self);      // place the parent before the preceding element to "move it up" 
}); 

Le code ci-dessus suppose le balisage ci-dessous, mais peut facilement être adapté à tout autre balisage que vous pourriez avoir ($(this).parents('div'), par exemple)

<ul> 
<li><a href="" class="move-up"></a></li> 
... 
</ul> 

Ceci est juste un exemple très grossier de la façon dont vous pourriez obtenir un tel résultat.

Questions connexes