2013-11-21 1 views
2

다른 탭에 채팅이있는 탭 패널이 있습니다. 각 탭 패널은 채팅을 가지고 토론 내 initComponent에, 그래서 매우 긴 언젠가이다, 나는 최신 메시지를 표시 할 수 있도록 지속적으로 아래로 스크롤 할 수있는 코드를 가지고 :이되어 있는지에 대해 잘 작동extjs4 패널에서 스크롤 이벤트 잡기

setInterval -> 
    this.scrollBy 100000, 100000 
, 100 

할 것. 문제는 내가 때때로 이전에 말한 것을보고 싶기 때문에 맨 위로 스크롤해야하지만이 코드는 분명히 나를 허용하지 않을 것입니다. 나는 후크 구현 :

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

을 지금은 단지 사용자가 내 패널에서 스크롤을 트리거 할 때 그가 다시 아마 아래로 다시 스크롤 할 때까지 나는 참으로 autoscroll_disabled을 설정할 수 있도록 이벤트를 잡을 수 있습니다. 어떻게 생각합니까 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'); 
     } 
    }); 
});