【问题标题】:extjs4 catching the scroll event on panelextjs4 捕捉面板上的滚动事件
【发布时间】:2013-11-21 09:24:16
【问题描述】:

我有一个标签面板,其中包含不同标签上的聊天。每个选项卡面板都有一个聊天,讨论有时很长,所以在我的initComponent 中,我有一个代码可以不断滚动到底部,这样我就可以显示最新消息:

setInterval ->
    this.scrollBy 100000, 100000
, 100

这对于它应该做的事情来说很好。问题是我有时想看看我之前说的内容,我必须滚动到顶部,但这段代码显然不允许我这样做。我实现了一个钩子:

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

现在我只需要在用户触发我的面板上的滚动时捕获事件,这样我就可以将autoscroll_disabled 设置为 true,直到他可能再次滚动回底部。知道如何在 extjs 的面板上捕获滚动事件吗?

【问题讨论】:

    标签: extjs extjs4


    【解决方案1】:
    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');
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 2017-07-27
      • 2012-12-19
      • 2021-11-15
      • 2019-12-29
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多