Очистка по умолчанию для некоторых вайпов с использованием jQuery touchwipe - PullRequest
5 голосов
/ 27 мая 2011

Я использую этот замечательный плагин для захвата событий стирания на мобильных устройствах: http://www.netcu.de/jquery-touchwipe-iphone-ipad-library

Я использую код в исходном тексте этой страницы, чтобы моя галерея изображений работала в цикле, как и должно быть.Тем не менее, моя галерея изображений занимает всю ширину экрана.К сожалению, touchwipe, по-видимому, препятствует прокрутке вверх и вниз по умолчанию прокрутки вверх и вниз по странице.Есть ли способ заставить его использовать поведение по умолчанию, кроме случаев, когда указано другое поведение?

$(document).ready(function() {
    $('#imagegallery').cycle({
        timeout: 0,
        fx: 'scrollHorz',
        next: '#next',
        prev: '#prev' 
    });

    $("#imagegallery").touchwipe({
        wipeLeft: function() {
            $("#imagegallery").cycle("next");
        },
        wipeRight: function() {
            $("#imagegallery").cycle("prev");
        }
    });
});

Я также открыт для других альтернатив достижения этого же эффекта (другие плагины, другие методы).Спасибо!

Ответы [ 2 ]

12 голосов
/ 31 октября 2012

С помощью этого небольшого патча для библиотеки jquery.touchwipe:

if(Math.abs(dx) >= config.min_move_x) {
     cancelTouch();
     if(dx > 0) {
-        config.wipeLeft();
+        config.wipeLeft(e);
     }
     else {
-        config.wipeRight();
+        config.wipeRight(e);
     }
  }
  else if(Math.abs(dy) >= config.min_move_y) {
     cancelTouch();
     if(dy > 0) {
-        config.wipeDown();
+        config.wipeDown(e);
     }
     else {
-        config.wipeUp();
+        config.wipeUp(e);
     }
  }

вы можете затем изменить свой код для выборочного вызова e.preventDefault ():

$(document).ready(function() {
    $('#imagegallery').cycle({
        timeout: 0,
        fx: 'scrollHorz',
        next: '#next',
        prev: '#prev' 
    });

    $("#imagegallery").touchwipe({
        wipeLeft: function(e) {
            e.preventDefault();
            $("#imagegallery").cycle("next");
        },
        wipeRight: function(e) {
            e.preventDefault();
            $("#imagegallery").cycle("prev");
        },
        preventDefaultEvents: false
    });
});

(I 'Мы представили патч автору плагина.)

0 голосов
/ 02 июня 2011

Я нашел временный ответ, который частично работает, найденный здесь: http://plugins.jquery.com/content/vertical-scroll

Хотя было бы хорошо получить лучший ответ.

...