За последние 24 часа нас посетили 18659 программистов и 1689 роботов. Сейчас ищет 1661 программист ...

Карусель колесиком мышки

Тема в разделе "JavaScript и AJAX", создана пользователем Dron-Boy, 17 мар 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Нужно сделать карусель которая будет листаться колемиком мышки и слайдом на смартфоне. Как мне сделать его? Какие есть идеи? для начала нужно что бы хотя бы колесиком.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    у jquery есть sсroll например, может он подойдёт
     
    #2 denis01, 17 мар 2017
    Последнее редактирование: 21 мар 2017
  3. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    я пробовал уже. Дело в том что нужно скролить в лево и вправо а не в верх и вниз. а что бы скролить в стороны нужно нажимать шифт. Пробовал с имитацией шифта не получилось не работало.
    --- Добавлено ---
    я думал может к мышке прикрутить блок 10 на 10 пх. а в нем будет блок высота которого равна длине карусели. и при наведении на блок с каруселью крутить скрол в блоке который за мишкой бегает. и так изменять положение в блоке с каруселью. но не знаю как прилепить блок этот к мышке
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ох и костыли костыльные, один костыль другим погоняет. А может быть все гораздо проще? Топорный пример, конечно, и написан за 10 минут, и правильней было бы юзать трансформации, а не смещения, но суть, думаю, ясна.
     
    denis01 нравится это.
  5. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    А как переписать на jq?
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
  7. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Да все я переписал сделал все норм. Толкьо есть вопрос еще один почему увеличивается число не так как нужно когда быстро крутишь. оно получается в конце дробное. а должно быть целое и постоянно разное в конце получается Вот код.
    Код (Javascript):
    1.  var left_li =  $(carousel).find('li').position().left;
    2. $(this).find('li').css('left',''+left_li - 188+'px');
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Я вообще думал, что должно быть не такое смещение, как у меня, чисто показать, что оно возможно, а по факту сработки события перелистывать слайд. То есть, дергать некое событие, вызывающее его смену. Насчет дробных чисел - хз, мб что делаете не так.
     
  9. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    ВОт именно то что вы сделали ономне подходит. ок пускай сдробними. а как определить что он вкрай вперся в правый либо в левый?
    --- Добавлено ---
    Все решил вот таким способом округляю и перевожу в интегер оказалось это вот эта строка дает дробное
    Код (Javascript):
    1. var left_li =  $(carousel).find('li').position().left;
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На будущее и на всякий случай, когда вам нужно определить, вперся ли в край, ни в коем случае не используйте ==.
    Используйте <= и >=. Чтобы учесть случай, когда, по какой-то причине, на момент срабатывания события смещение будет за краем. Например, чтобы потом инициировать анимацию возврата элемента к краю, как в скорллах на телефоне, например.
     
    #10 Fell-x27, 20 мар 2017
    Последнее редактирование: 20 мар 2017
  11. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Да я так и сделал. А вот наткунлся на проблему когда кручу карусель крутится и вся страница. Убрал канечно что бы при наведении для боди overflow hidden стало. Но это не изящно. как можно по другому сделать. кстати для тачей я просто прикрутил flexislider.
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А я для тачей написал собственную библиотеку. Теперь знаю досконально, как это все работает и какая жопа этот ваш зум двумя пальчиками...

    Юзать не смещения координат и отступов, а CSS-трансформации.
     
  13. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    но это ведь не решит проблему. я говорю о том что у этого блока с каруселью нет вертикального скрола только горизонтальный. из за этого браузер просто дальше прокручивает страницу в низ. вот об этом я говорю.
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А понял. В таком случае перехватывайте событие onScroll над каруселью, отменяйте его всплытие, будет вам счастье.
     
  15. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Я немного не понял. Можно пример?
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Можно. И советую ознакомиться с событийной моделью в JS. На будущее.
     
    Dron-Boy нравится это.
  17. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Спасибо)
     
  18. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Dron-Boy нравится это.
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ха) жестко)))
    Но не более чем proof of concept как по мне. Ограничений слишком много. Да и не везде можно скроллом через CSS играться. Но интересно, да.
     
  20. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @Fell-x27 я был вдохновлен этим
    =)
     
  21. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Это круто) чел)