Ciao jimbo,
Per animare puoi usare, sorpresa sorpresa, animate()
codice:
$(window).scroll(function(){
if($(window).scrollTop() > elementPosition.top){
$('#Mod97').css('position','fixed').animate({top:50});
} else {
$('#Mod97').css('position','static');
}
});
Per quanto riguarda i dispositivi mobili, puoi usare una media query
codice:
@media (max-width: 767px) {
#Mod97{
position:static !important;
}
}
Nota "!important", impedirà a javascript di alterare quella regola (se la finestra è più piccola di 767px) e la ripristinerà se da una "finestra" maggiore di 767px effettui un "rimpicciolimento".
Potresti anche usare una funzione javascript che verifica l'user-agent (il device) utilizzato:
codice:
function is_Mobile(){
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
return true;
}
return false;
}
$(window).scroll(function(){
if($(window).scrollTop() > elementPosition.top && !is_Mobile()){
$('#Mod97').css('position','fixed').animate({top:50});
} else {
$('#Mod97').css('position','static');
}
});
Questo secondo metodo considera solo il tipo di dispositivo e non tiene conto della reale risoluzione, un tablet android con 1024px disponibili verrà comunque considerato un dispositivo mobile. Nel tuo caso specifico credo sia consigliabile la media query.