Jest na to parę sposobów, można spróbować nadpisać klasę odpowiadającą za animację (jeżeli tylko raz z niej korzystamy, choć możemy to pokombinować z przekazywaniem do własnej klasy CSS własności klasy z animateCSS), stosując important , ustawiając wszystko na 0. Ale to nie znaczy, że ona nie działa. Czyli zwykły media-queries.
Innym sposobem ugryzienia tego jest wyznaczenie jakie właściwości CSS mają być przepisane do danego urządzenia. Ale tu trzeba dość sporu kodu CSS napisać + co jeżeli urządzenie będzie w jakiś sposób niestandardowe.
Inny sposób to detekcja przez server (nie klienta) typu urządzenia. Ale od tego chyba się już odchodzi. Niech to się tu specjaliści PHP wypowiedzą.
Najlepszy to odpinanie klasy CSS, od elementu. Ale kiedy ją odpinać? Istnieje taki obiekt jak Navigator. No on ma dośc dużo pól. Ale nas interesuje jedynie userAgent.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator
Ale ta jest nie zalecana. Z wielu powodów.
Na łatwiej jest po prostu mierzyć wielkość ekranu po przez pole window.outerWidth.
https://developer.mozilla.org/pl/docs/Web/API/Window/outerWidth
A dlaczego nie innerWidth? Gdyż zwracamy okno, a nas interesuje całość + na chromie żle odczytuje tą wartość przy emulacji okna. Więcej na ten temat tutaj:
https://stackoverflow.com/questions/12066093/what-is-the-difference-between-window-innerwidth-window-outerwidth
Wywołuje zdarzenie resize, na window sprawdza outerWidth czy jest poniżej jakieś wartości. I done.
A teraz do tego co ty używasz.
Jest to dość skomplikowany regex.
Drugi jest problem jest taki, że on ma na sztywno wpisaną jakąś tablicę i pewnie porównuje z UA, a co jeśli dojdzie jakaś nowa marka?
Ciekawym pomysłem jest sprawdzanie czy potrafi przeglądarka zainicjować zdarzenie touch, ale to też nie jest najlepsze rozwiązanie z powodu istnienia ultrabooków i chyba też istnieją ekrany dotykowe na deteskopy.