Can A View Load All Data, And Filter (Hide) With CSS?
A module might be able to help you with this
https://drupal.org/project/mixitup_views (drupal 7 + 8)
Loads all items and might be close to what you need
https://www.drupal.org/project/isotope (drupal 7 + 8) A highly customizable module that is probably harder to implement as well
Some other alternative modules
https://www.drupal.org/project/views_semantic_tabs (drupal 8) might be a good fit
https://drupal.org/project/shuffle (drupal 8)
Not sure if it loads all results at once but it offers the filtering you described
https://drupal.org/project/views_quicksand (drupal 7)
does not load all results at once by has the filtering effect that you need so it might be a starting point
NOTE: all or almost all above module use JS libraries that you have to pay for if you implement them in commercial products
A custom alternative
Create a view that displays all results
and use global text area to rewrite all the elements to be part of a container div
and add classes to the container based on the categories you want filterable
Then use this code https://codepen.io/terf/post/jquery-filter-divs
in your custom module or theme changing box class with your container's class name