2013-11-21 28 views
2

我有一个tabpanel在不同的选项卡上聊天。每个标签面板有一个聊天和讨论是一段很长的话,在我initComponent,我有一个代码,以连续滚动至底部,所以我可以显示最新消息:extjs4捕捉面板上的滚动事件

setInterval -> 
    this.scrollBy 100000, 100000 
, 100 

这对于什么它应该工作正常去做。问题是我有时想看看我之前谈过的内容,并且必须滚动到顶端,但是这段代码显然不会让我知道。我实现了一个钩:

setInterval -> 
    if not this.autoscroll_disabled 
     this.scrollBy 100000, 100000 
, 100 

,现在我只是当用户触发我的面板上滚动捕捉事件,所以我可以设置autoscroll_disabled为true,直到他向后滚动到再次探底可能。任何想法如何在extjs的面板上捕捉滚动事件?

回答

3
Ext.require('*'); 

Ext.onReady(function() { 
    var content = [], 
     i = 1; 

    for (; i <=100; ++i) { 
     content.push('Line ' + i); 
    } 

    var p = new Ext.panel.Panel({ 
     renderTo: document.body, 
     width: 200, 
     height: 200, 
     autoScroll: true, 
     title: 'Foo', 
     html: content.join('<br />') 
    }); 

    p.getTargetEl().on('scroll', function(e, t) { 
     var height = p.getTargetEl().getHeight(); 
     if (height + t.scrollTop >= t.scrollHeight) { 
      console.log('bottom'); 
     } 
    }); 
});