2015-07-16 1 views
0

J'utilise velocityjs, localscroll (qui nécessite scrollTo).Comment utiliser la propriété complète dans velocity.js pour déclencher localscroll

J'ai un formulaire caché par défaut. J'utilise une balise d'ancrage qui, lorsqu'elle est cliquée, affiche le formulaire.

html

<a href="#myForm" class="button" id="show">Show the form</a> 

jquery

$('#show').click(function (event) { 
    $('#myForm') 
    .velocity('slideDown', {'duration': 2000}) 
    .velocity({'opacity': 1}, { 
     'complete': function() { 
      $('#myForm').localScroll({ 
       'target': 'body', 
       'duration': 2000, 
       'easing': 'swing', 
       'hash': false 
      }); 
     } 
    }); 
}); 

Ce que je suis en cours d'exécution en est que parce que je n'ai pas event.preventDefault pour arrêter l'action du navigateur par défaut de saut à la cible, ma page saute à ma forme comme il est en train de disparaître.

Je voudrais faire défiler la page après le formulaire est entièrement montré.

Si j'utilise event.preventDefault(), la page ne défilera pas du tout. Ce qui est logique puisque, à ce moment-là, je lui dis de ne rien faire.

Répondre

0

Au lieu de compliquer avec une autre bibliothèque, il suffit d'utiliser la commande de vitesse scroll pour faire défiler jusqu'à la position souhaitée, par exemple:

//... 
complete: function (form) { 
    $(form).velocity('scroll', { duration: 2000, easing: "swing" }); 
} 
+0

Merci beaucoup! J'ai complètement oublié le fait que la vélocité pouvait gérer cela. J'utilisais même 'scrollTop'. Trop près du projet, je suppose. – Damon