2017-03-02 40 views
1

J'utilise $$('.em-details-tabs')[0].scrollTo(); dans une fonction, puis déclenche un clic en utilisant $$('DIVELEMENT')[0].click();. La fonction click est exécutée avec succès mais le défilement vers un élément spécifique échoue. Voici mon extrait de code:Le défilement ne fonctionne pas après le déclenchement cliquez sur

$$('a[href="#' + tab_id + '"]')[0].triggerEvent('click'); 
$$('.em-details-tabs')[0].scrollTo(); 

Répondre

0

L'élément scrollTo() est disponible uniquement sur l'objet window, et il accepte également deux paramaters; x et y positions.

Pour résoudre ce problème, vous pouvez utiliser la méthode scrollTop() de jQuery sur le window et lui attribuer la position y de l'élément requis. Essayez ceci:

$$('a[href="#' + tab_id + '"]')[0].triggerEvent('click'); 
$$(window).scrollTop($$('.em-details-tabs').offset().top); 

Working Example

vous pouvez également modifier cette logique pour faire le Animer de défilement de sorte que l'effet est évident pour vos utilisateurs:

$$('html, body').animate({ 
    scrollTop: $$('.em-details-tabs').offset().top 
}, 500); 

Working Example

+0

Son travail, Mais besoin de deux fois appuyez sur le clic, un seul clic seulement sur l'onglet ouvert (déclencheur cliqué déclenché) appel de la fonction de la seconde fois que le temps passer (Scrolll) à la position appropriée , – Monarch1

+0

Je n'ai pas vu cela se produire. Pourriez-vous modifier les exemples de violon ci-dessus pour montrer que le comportement –

+0

J'utilise prototype js et tous les scripts sont – Monarch1