2010-08-31 4 views
2

J'utilise une pagination basée sur mootools qui fonctionne bien. Cependant, je voudrais quand un utilisateur clique sur une nouvelle page (à partir du bas où les liens de pagination sont cliqués) pour retourner le nouveau jeu de commentaires et revenir en haut de la div du conteneur.Mootools Retour au début de contenant div?

Y at-il une fonction pour faire quelque chose comme ça avec mootools?

Voici le code qui doit être changé:

var Comments = new Class({ 

id: 0, 
page: 0, 
object: null, 
name: null, 
parentid: 0, 
folder: './', 

initialize: function(id, object, name, folder){ 
    // Setup 
    this.id = id; 
    this.object = object; 
    this.name = name; 
    this.folder = folder; 
    // Get the comments for this page 
    this.getComments(this.page); 
}, 


cacheDefeat: function() { 
    var myDate = new Date(); 
    return '&r=' + myDate.getTime(); 
}, 


getComments: function(page) { 
    this.page = page; 
    var object = this.object; 
    var req = new Request({ 
     method: 'get', 
     url: this.folder + 'backend.php', 
     onSuccess: function(text, xml) { 
      object.set('html', text); 
     } 
    }).send('objid=' + this.name + '&do=read&thumbs=' + $(this.name + "sel").value + '&id=' + this.id + '&page=' + this.page + this.cacheDefeat()); 
}, 
}); 

je ne peux pas la bonne façon d'ajouter l'événement de défilement pour elle.

Répondre

1

Ce dont vous avez besoin est Fx.Scroll, une extension Mootools More.

Vous souhaiterez probablement faire défiler la fenêtre à laquelle vous pouvez accéder avec window. Vous voulez faire défiler jusqu'au début d'un élément enfant de la fenêtre. Heureusement, Fx.Scroll a la méthode toElement qui fait cela pour nous. Ainsi, vous pouvez effectuer les opérations suivantes:

var container = $('idOfDivWithPaginatedContents'); 

var scoller = new Fx.Scroll(window); 

Assurez-vous que le code ci-dessus est en dehors de la fonction où vous souhaitez faire défiler la page ou bien vous allez créer des charges de changeurs au lieu d'un seul. Puis à l'intérieur de cette fonction (assurez-vous que vous passez dans le défilement et le conteneur en tant que paramètres):

var paginationFunction = function(scroller, container) { 
    //Paginate stuff here 

    scroller.toElement(container); 
} 
Questions connexes