Articles in this section
Category / Section

How to refresh the Angular DatePicker popup position dynamically based on window resizing

2 mins read

When implementing a DatePicker component in a web application, it is important to ensure that when the popup is in open, its position remains aligned with the input field when the window is resized horizontally. This article provides a solution for adjusting the popup position based on window resizing when the popup is open.

To keep the DatePicker popup aligned with the input field, you can use the refreshPosition method within a window resize event. Below is an example code of how to implement this in an Angular application:

<!-- app.component.html -->
<div class="cards">
    <div class="col"></div>
    <div class="col">
      <ejs-datepicker #datetime width="300px"></ejs-datepicker>
    </div>
    <div class="col"></div>
</div>
<!-- app.component.ts -->
@HostListener('window:resize', ['$event']) // HostListener for window resize event
  onWindowResize(event: Event) {
     // Refresh the position of the DatePicker popup
     if ((this.datetime as any).popupObj) {
        (this.datetime as any).popupObj.refreshPosition();
     }
  }

In the above code, the @HostListener decorator is used to listen for the window resize event. When the window is resized, the onWindowResize method is called, which in turn checks if the popupObj of the DatePicker component is available. If it is, the refreshPosition method is called to refresh the popup with the DatePicker input.

Sample

This sample demonstrates the dynamic alignment of the DatePicker popup when the window is resized.

DatePicker Alignment Sample

Additional References

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied