With thanks to the user vohuman, this is the answer:
Apparently mobile browsers scroll the body element and desktop browsers scroll the html element. Therefor, the solution to the question is selecting both the elements 'html' and 'body' like so:
$("#programmaMenu").on("click", "div", function(event){
event.preventDefault();
$('html, body').stop().animate({
scrollTop: $("#"+$(this).attr("rel")).position().top - 120
}, 500, 'swing');
});