How to dynamically change jQuery Datatables height

前端 未结 8 1879
情话喂你
情话喂你 2021-01-31 05:25

I\'m using jQuery Datatables. I want to change the height of the table whenever a user resizes the window. I\'m able to catch the window resize event which allows me to calculat

相关标签:
8条回答
  • 2021-01-31 05:58

    Using newer versions of Datatables, there's other methods, which, when combined with the judicious use of a timer for watching the resize event triggers, works pretty well. I've left the "ancient" "window.location.reload()" line in for those who are stuck running older versions of DataTables - simply uncomment it and comment out the "table.draw()" call.

    Side note, the documentation says the correct call is "table.Draw()" - that is not the case on the version I am using (call is all lowercase).

    $(window).on('resize', function(e) 
    {
      if (typeof resizeTimer !== 'undefined') {
        clearTimeout(resizeTimer);
      }
      resizeTimer = setTimeout(function() 
      { 
    
        // Get table context (change "TABLENAME" as required)
           var table = $('#TABLENAME').DataTable();                                 
    
        // Set new size to height -100px
           $('.dataTables_scrollBody').css('height', window.innerHeight-100+"px");      
    
        // Force table redraw
           table.draw();        
    
        // Only necessary for ancient versions of DataTables - use INSTEAD of table.draw()
           // window.location.reload();
      }, 250);    // Timer value for checking resize event start/stop
    });
    

    That's it.

    0 讨论(0)
  • 2021-01-31 05:59

    Here is a simple solution as documented here

        $(document).ready(function() {
            $('#example').DataTable( {
                scrollY:        '50vh',
                scrollCollapse: true,
                paging:         false
            });
        });
    

    vh Relative to 1% of the height of the viewport*

    You can use the vh unit to set a height that varies based on the size of the window.

    Supported in: Chrome 20.0+, IE 9.0+, FireFox 19.0+, Safari 6.0+, Opera 20.0+

    0 讨论(0)
提交回复
热议问题