Automatically scroll textarea to last line?Extjs自动转向文本框textarea最后一行

网上找了好久并没有找到相关案例,在官网论坛上看到一个讨论。可将代码拷贝到fiddle中使用。

转载于官网论坛https://www.sencha.com/forum/showthread.php?299025#top

方法一:

Ext.define('logAreaController', {
  extend: 'Ext.app.ViewController',
  alias: 'controller.log',


  updateLog: function(data) {
      // simulated data
      data = 'Button was clicked';
      var vm = this.getViewModel();
      vm.setData({
          logText: vm.data.logText + data + '\n'
     });
        
     //Get the text area component, the textarea input element and
    //dom scroll height
     var txtArea = Ext.ComponentQuery.query('#myTextArea')[0],
           inputElDom = txtArea.inputEl.dom,
           scrollHeight = inputElDom.scrollHeight;
        
        //Set the input element dom scroll top to the height to force 
        //it to scroll to the bottom
        inputElDom.scrollTop = scrollHeight;
    }
});


Ext.application({
    name: 'Fiddle',

    launch: function() {
        Ext.create('Ext.window.Window', {
            controller: 'log',
            viewModel: {
                data: {
                    logText: ""
                }
            },
            items: [{
                xtype: 'textarea',
                itemId: 'myTextArea',
                height: 100,
                width: 200,                
                bind: {
                    value: '{logText}'
                }
            }, {
                xtype: 'button',
                text: 'click me',
                handler: 'updateLog'
            }]
        }).show();
    }
});

方法二:

Ext.define('logAreaController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.log',

    updateLog: function(data) {
        // simulated data
        data = "Button was clicked";
        var log = this.lookupReference('LogText');
        log.update({logText: data});
        log.getTargetEl().scroll('b', 100000, true);
    }
});

Ext.application({
    name: 'Fiddle',

    launch: function() {
        Ext.create('Ext.window.Window', {
            controller: 'log',
            items: [{
                xtype: 'panel',
                reference: 'LogText',
                scrollable: true,
                bodyPadding: 5,
                tpl: '<p style="margin: 3px 0 0 0">{logText}</p>',
                tplWriteMode: 'append',
                height: 100,
                width: 200,
            }, {
                xtype: 'button',
                text: 'click me',
                handler: 'updateLog'
            }]
        }).show();
    }
});

希望有所启发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值