Direi di aggiungere una classe a ogni ancora mentre lo scroller viene trascinato. Ad esempio, aggiungi un nome di classe di "trascinamento" a ciascun ancoraggio mentre viene trascinato, quindi rimuovi la classe durante il trascinamento.
Ciò significa che è possibile aggiungere un preventDefault a qualsiasi collegamento che abbia la classe "trascinamento". Qualcosa sulla falsariga di:
myScroll1 = new iScroll('scroll1', {
snap: 'li',
momentum: false,
hScrollbar: false,
onScrollStart: function() {
$('div#iscroll1 a').addClass("dragging");
},
onScrollEnd: function() {
$('div#iscroll1 a').removeClass("dragging");
document.querySelector('.indicator > li.active').className = '';
document.querySelector('.indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
}
});
$('.dragging').click(function (e) {
e.preventDefault();
}
Questo è il codice però non testato quindi potrebbe essere necessario per perfezionare i selettori.
Ho la sensazione che l'immissione di un ascoltatore sui link è la strada da percorrere. Cioè quando viene fatto clic su un collegamento (che accade accidentalmente in questo caso) impedisce il comportamento predefinito, controlla se gli utenti scorrono e se non apre comunque il collegamento? Spero che questo ispiri te o qualcun altro. (Mi piacerebbe sapere se questo è _non_ la strada da percorrere) – Joep
Hai ancora bisogno di iScroll con iOS5 in uscita? Perché non utilizzare '-webkit-overflow-scrolling: touch' – Matijs
Mi piacerebbe avere la stessa funzionalità sia sul desktop che sul cellulare. Questo è l'unico che so che va bene. Secondo le recensioni degli utenti ecc. –