码迷,mamicode.com
首页 > 其他好文 > 详细

[Angular] Scrolling the Message List To the Bottom Automatically Using OnChanges

时间:2017-01-26 19:04:26      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:scrollto   element   exp   tco   das   port   test   and   tor   

Let‘s say the message list can Input (messages) from parent component, and what we want to do is when there are new message, we will scroll message list to the bottom to show the lastest message.

 

import {Component, Input, ViewChild, OnChanges, SimpleChanges} from @angular/core;
import {last} from lodash;

@Component({
  selector: message-list,
  templateUrl: ./message-list.component.html,
  styleUrls: [./message-list.component.css]
})
export class MessageListComponent implements OnChanges{

  @Input() messages;

  @ViewChild(list) list;

  constructor() { }

  ngOnChanges(changes: SimpleChanges): void {
    if(changes[messages]) {
      const previous = changes[messages].previousValue;
      const current = changes[messages].currentValue;
      if(previous.length < current.length) {
        setTimeout(() => this.scrollToBottom());
      }
    }
  }

  scrollToBottom(): void {
    const items = this.list.nativeElement.querySelectorAll(li);
    const lastItem: any = last(items);
    lastItem.scrollIntoView();
  }
}

 

[Angular] Scrolling the Message List To the Bottom Automatically Using OnChanges

标签:scrollto   element   exp   tco   das   port   test   and   tor   

原文地址:http://www.cnblogs.com/Answer1215/p/6351803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!