Это ответит на первую часть вашего вопроса.
Попробуйте использовать Modernizr, а затем добавьте тест appleOS.
Modernizr.addTest('ipad', function () {
return !!navigator.userAgent.match(/iPad/i);
});
Modernizr.addTest('iphone', function () {
return !!navigator.userAgent.match(/iPhone/i);
});
Modernizr.addTest('ipod', function () {
return !!navigator.userAgent.match(/iPod/i);
});
Modernizr.addTest('appleios', function () {
return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
});
Оттуда вы можете добавить класс к телу, если это iOS, и применять классы наведения только для устройств не-iOS.
В идеале вы могли бы просто использовать класс тела "notouch", который Modernizr добавляет в браузер, не поддерживающий сенсорный ввод, но по моему опыту он не добавляет этот класс в браузеры Blackberry, даже если устройство не поддерживает сенсорный ввод. , Дайте мне знать, если вы найдете по-другому!