ACTUALIZACIÓN: Pude hacer que mi scroller funcionara como se desea, pero siento que he pirateado el problema real y me encantaría que alguien tenga una respuesta más sólida. He actualizado y anotado en los fragmentos debajo del nuevo jQuery que estoy usando.iscroll scrollToElement no actualiza la variable currPage
estoy usando iScroll-4 (http://cubiq.org/iscroll-4) para una aplicación web iPad/Android, todo funciona a la perfección con los golpes y el desplazamiento, pero tengo una tabla de contenido al principio de la aplicación que permite a los usuarios saltar a áreas específicas de la rueda de desplazamiento -
Estoy usando la función iScroll scrollToElement(element, duration)
para saltar a las diferentes áreas. También usa scrollToPage(page, duration)
para permitir al usuario navegar manualmente hacia adelante y hacia atrás una página a la vez.
Mientras está viendo la consola registra los currPageX
actualización de las variables cuando navego con la función scrollToPage
y cuando deslizar el dedo, pero cuando se utiliza la variable scrollToElement
la currPageX
no se actualiza.
Por lo tanto, si salto a un elemento y luego avanzo con scrollToPage('next', 0)
, irá hacia atrás y me llevará a la página siguiente después de la tabla de contenido.
He intentado usar la función scroll.refresh()
después scrollToElement
, antes, poniendo la función dentro de un tiempo de espera, etc., y no puedo entender por qué la currPageX
no se actualiza.
He aquí un fragmento del código jQuery que estoy usando las dos funciones diferentes:
// TO NAVIGATE FORWARD AND BACKWARDS
$('span.control').on('click', function() {
var slideDir = $(this).attr('data-dir');
if (slideDir == 'prev') {
var tehPg = tehScroll.currPageX-1;
} else if (slideDir == 'next') {
var tehPg = tehScroll.currPageX+1;
}
tehScroll.scrollToPage(tehPg, 0);
return false;
});
// TO JUMP FROM CONTENTS
$('li[data-page="toc"] span').on('click', function() {
var toPage = $(this).attr('data-page');
tehScroll.scrollToElement('li[data-page="'+toPage+'"]', 800);
// ADDED THE FOLLOWING LINE TO MANUALLY SET currPageX after scrolling!
tehScroll.currPageX = $('#slides li[data-page="'+toPage+'"]').index();
return false;
});
estoy usando la versión 5 de iScroll y tenía el mismo problema. La forma en que lo resolví fue escribiendo ** 'tehScroll.currentPage.pageY' ** en lugar de **' tehScroll.currPageX' ** Además, ¿cuál es el propósito de eso ** 'return false' ** en ¿El fondo? –
'return false' detendrá la acción predeterminada del elemento cliqueado, por lo que para una etiqueta' a' que estaría navegando al 'href', sin embargo, en este caso, debido a que el manejador de clics está en' span', no hace precisamente nada;) – andyface