Автор Тема: Карусель слайдер  (Прочитано 58 раз)

17 Август 2017, 20:36:18
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Приветствую в который раз!
Заметил проблему в слайдере, почему то правая кнопка застревает между 1-м и последним слайдом, дальше не идет на 2-й слайд. А левая идет! Не подумайте что я обкурен, сам в шоке.
Раньше на JS делал на чистом похожу проблему, но это было когда еще ходили динозавры. Кто-нибудь сталкивался?
<div class="direction">
      <a class="left carousel-control" href="#carousel" role="button" data-slide="prev">
        <span class="icon-prev hidden-xs" aria-hidden="true">
          <i class="material-icons">&#xE5CB;</i>
        </span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="right carousel-control" href="#carousel" role="button" data-slide="next">
        <span class="icon-next" aria-hidden="true">
          <i class="material-icons">&#xE5CC;</i>
        </span>
17 Август 2017, 20:44:25
Ответ #1
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
И еще вот тут самые кишки
if (a.nav) {
                    g = "<a href='#' class='" + E + " prev'>" + a.prevText + "</a><a href='#' class='" + E + " next'>" + a.nextText + "</a>";
                    l.navContainer ? c(a.navContainer).append(g) : f.after(g);
                    var d = c("." + d + "_nav"),
                        G = d.filter(".prev");
                    d.bind("click", function(b) {
                        b.preventDefault();
                        b = c("." + j);
                        if (!b.queue("fx").length) {
                            var d = e.index(b);
                            b = d - 1;
                            d = d + 1 < C ? n + 1 : 0;
                            z(c(this)[0] === G[0] ? b : d);
                            if (a.pager || a.manualControls) r(c(this)[0] === G[0] ? b : d);
                            a.pauseControls || m()
                        }
                    });
                    a.pauseControls && d.hover(function() {
                        clearInterval(p)
                    }, function() {
                        m()
                    })
18 Август 2017, 10:39:21
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 3040
  • Репутация: +72/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Проверил на своем сайте, слайдер крутит без проблем. У тебя какой слайдер установлен?
21 Август 2017, 19:13:22
Ответ #3
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Стоит ps_imageslider FTP-название
в Админке: Responsive carousel slider v1.0.0 - от MyPrestaModules
22 Август 2017, 11:05:57
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 3040
  • Репутация: +72/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Обнови модуль PrestaShop/ps_imageslider, писали что у него проблемы. Много что исправили в последней версии.
25 Август 2017, 19:43:51
Ответ #5
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так ведь он не хочет апдейтиться, и найти новую версию я не смог
27 Август 2017, 14:12:14
Ответ #6
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вообщем изменил, а результата 0. Такая же проблема.
Попробовал своими силами изменить:
if (a.nav) {
                    g = "<a href='#' class='" + E + " prev'>" + a.prevText + "</a><a href='#' class='" + E + " next'>" + a.nextText + "</a>";
                    l.navContainer ? c(a.navContainer).append(g) : f.after(g);
                    var d = c("." + d + "_nav"),
                        G = d.filter(".prev");
                    d.bind("click", function(b) {
                        b.preventDefault();
                        b = c("." + j);
                        if (!b.queue("fx").length) {
                            var d = e.index(b);
                            b = d - 1;
                            d = d + 1 < C ? n + 1 : 0;
                            z(c(this)[0] === G[0] ? b : d);
                            if (a.pager || a.manualControls) r(c(this)[0] === G[0] ? b : d);
                            a.pauseControls || m()
                        }
                    });

Но результат нет, может у кого есть js-ки еще скиньте я проверю так же у Вас читает шаги?
27 Август 2017, 14:21:35
Ответ #7
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хммм, похоже что не все так просто, по кнопке вижу что идет обращение вообще в другой модуль в blockhomeslider.

Есть файлик сравнить, у кого такой модуль есть?
27 Август 2017, 14:23:48
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 3040
  • Репутация: +72/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Что тут сравнивать? Нужно выбирать или модуль ps_imageslider, или модуль blockhomeslider.
27 Август 2017, 14:25:18
Ответ #9
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В админке у меня отображается только один слайдер, вообще дичь какая то.
Тут я вот раздобыл
var findShortestDistance = function(from, to) {
      var goingToLeft = 1, goingToRight = 1, tracker;
      tracker = from;
      // see how long it takes to go to the left
      while ((tracker = getPreviousNum(tracker)) != to) {
        goingToLeft++;
      }

      tracker = from;
      // see how long it takes to to to the right
      while ((tracker = getNextNum(tracker)) != to) {
        goingToRight++;
      }

      // whichever is shorter
      return (goingToLeft < goingToRight) ? goingToLeft*-1 : goingToRight;
    }

    // Move to the left if left button clicked

    $(document).on('click', options.leftButtonTag, function(){
      initiateMove(false,1);
    });

    // Move to right if right button clicked
    $(document).on('click', options.rightButtonTag, function(){
      initiateMove(true,1);
    });

И счет идет так при выборе кнопке Next если со второго слайда нажимаешь, он идет 3 потом 1-й и зависает. Т.е. расчет с позиции 1-го и 3-го неправильный. с первого прыгает на 3-й и с 1-го на 3-й.
27 Август 2017, 14:33:33
Ответ #10
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все решено! Исправлено это Г*мно!
return (goingToLeft < goingToRight) ? goingToLeft*1 : goingToRight;