jQuery Unslide-Touch не работает

Я уже решил это, и я только публикую, чтобы помочь другим сэкономить время.

Я использую unslider для бизнес-сайта, веб-сайт, который я делаю отзывчивым, поэтому функция добавления сенсорной поддержки слайдера привлекательна. К сожалению, это не работает прямо из коробки, как утверждает автор.

4 ответов


обновление
Плагин unslider, который я использовал, устарел. Я скачал его из unslider.com где я впервые нашел его (это все еще устаревшая версия), поэтому у меня были трудности.

Если вам нужно получить последнюю версию, перейдите по ссылке:https://github.com/idiot/unslider/

и если вы хотите увидеть мой отчет о проблеме:https://github.com/idiot/unslider/issues/69


проблема в том, что автор не обновлял свой проект в течение 4 месяцев, и с тех пор событие swipe было перемещено из $.событие.проведите $.событие.специальный.сильный удар.

проблема возникает в строке 108 плагина unslider, где он проверяет наличие плагина swipe.

108: if($.event.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);

просто измените его на:

108: if($.event.special.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);

Это простое решение, но потребуется некоторое гугление, чтобы выяснить.

если вы хотите быть уверены, он будет работать с более ранними версиями, вы можете сделать это:

108: if($.event.special.swipe || $.event.special.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);

но я не рекомендую.

и автор не упоминает об этом, но страница плагина swipe делает, вам нужно включить jquery.событие.перемещение в дополнение к jquery.событие.проведите пальцем по своим сценариям.

надеюсь, это помогло кому-то:)


ответ на комментарий ниже:

не забудьте включить все файлы в правильном порядке, и запомнить их все:

<script type="text/javascript" src="/scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.move.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.swipe.js"></script>
<script type="text/javascript" src="/scripts/unslider.min.js"></script>

Это не сработало для меня, но после обширных настроек я заставил его работать гладко. Я шаг за шагом писал в блоге, что я сделал, но не почему. http://frazer.livejournal.com/21898.html

Я надеюсь, что это поможет, особенно людям, новым для drupal.

короче говоря-я добавил Это на свою страницу, и я получил отзывчивое движение:

var wrap = jQuery(".slides_wrap"),
   slides = wrap.find(".img_slide"),
   width = slides.width();
slides
.on("move", function(e) {
          // Move slides with the finger
// banner has moved -100% when one slide to the right
   var left = 100 * e.deltaX / width;
   wrap[0].style.left = parseInt(wrap[0].style.left.replace("%", ""))+left+"%";
})
.on("moveend", function(e) {
setTimeout(function(){
   var left = parseFloat(wrap[0].style.left.replace("%", ""));
   var left_rounded = Math.round(left/100)*100;
   if(left%100!=0){
     jQuery(".slides_wrap").animate({"left":left_rounded + "%"});
  }
},800);
});

на сегодняшний день (ноябрь 2014), похоже, функциональность салфетки была заменена move. URL-адрес плагина http://stephband.info/jquery.event.move/ . Просто импортируйте это вместо swipe.

надеюсь, кто-то найдет это полезным. Пришлось проверить фиксации, чтобы выяснить.


я натыкаюсь на эту тему, поскольку я настоящий нуб и не смог установить Jquery.событие.сильный удар.модуль на JS Теперь это решено, но вот несколько вещей, которые такие нубы, как я, обязательно проверят:

  • убедитесь, что у вас есть оба github.com/stephband/jquery.event.move.js и github.com/stephband/jquery.event.swipe.js в папке projet
  • сделайте ссылку на эти 2 файла в вашем html-файле
  • убедитесь, что у вас unslider.файл js в вашем папка projet также (у меня был unslider.минута.JS-файл, который не был достаточно полным, чтобы Плагины салфетки работали)

в html-файле не требуется дополнительный код javascript, он должен работать с вышеизложенным (по крайней мере, для меня)

оба очень хорошие бесплатные инструменты, благодаря кодеров