Что нового

Нужна помощь в JS, есть кто разбирается? (1 Viewer)

  • Автор темы stillmaster
  • Дата начала
stillmaster

stillmaster

Участник
Регистрация
18 Авг 2022
Сообщения
235
Реакции
106
В общем сделал на сайте прокручиваемые горизонтальные скрулы которые можно двигать с помощью мыши.
JavaScript:
const slider = document.querySelectorAll('.scroll');
let isDown = false;
let isMove = false; // Переменная, отвечающаяя за состояние свайпа
let startX;
let scrollLeft;
slider.forEach(el => {

  el.addEventListener('mousedown', (e) => {
    isDown = true;
    el.classList.add('active');
    startX = e.pageX - el.offsetLeft;
    scrollLeft = el.scrollLeft;
  });
  el.addEventListener('mouseleave', () => {
    isDown = false;
    el.classList.remove('active');
  });
  el.addEventListener('mouseup', () => {
    isDown = false;


    //Если отжали ЛКМ, то свайп закончен.
    //Но не сразу, чтобы не стриггерить клик в момент, когда переменная станет false

    setTimeout(() => {
      isMove = false;
    }, 0.1);
    el.classList.remove('active');
  });
  el.addEventListener('mousemove', (e) => {
    if (!isDown) return;
    isMove = true; // Меняем переменную
    e.preventDefault();
    const x = e.pageX - el.offsetLeft;
    const walk = (x - startX) * 1; //scroll-fast
    el.scrollLeft = scrollLeft - walk;
    // console.log(walk);
  });
});

//Блокируем все ссылки, если свайпаем

const links = document.querySelectorAll('.slider a');
links.forEach(el => {
  el.addEventListener('click', (e) => {
    if (isMove) e.preventDefault();
  });
});
Во всех браузерах работает, но почему то в мозиле немного не так как хотелось бы работает, мышка просто прилипает к объекту и двигается без кнопки.
А еще ссылки срабатывают только после второго нажатия, кто может подсказать что не так. Не знаю можно ли тут адрес сайта оставлять.
 
Навряд ли он больше тут ответит, так как набил свои 10 сообщений, скачал что надо и ушёл в закат)
Мда, а может плагин кто знает готовый, с помощью которого можно реализовать подобное.
 
Навряд ли он больше тут ответит, так как набил свои 10 сообщений, скачал что надо и ушёл в закат)
Да не, вернулся специально посмотреть справился ли человек)

Честно не знаю что означает собрать бабелем.
Есть такой челик webformyself, у него есть курс, называется JavaScript Полное руководство для современной веб-разработки, там в одной из частей есть два видео, он как раз рассказывает и показывает как можно легко собрать проект с помощью вебпака и бабеля. В интернете этот курс лежит в открытом доступе и найти его не составит труда.

@stillmaster вот тебе видео, чтобы не искал https://dropmefiles.com/x7dyb
там 5 видео, все что тебе надо в 3 и 4, но добавил дополнительные чтобы было ясно как создавать проект и скомпилировать.
Надеюсь поможет
 
Да не, вернулся специально посмотреть справился ли человек)


Есть такой челик webformyself, у него есть курс, называется JavaScript Полное руководство для современной веб-разработки, там в одной из частей есть два видео, он как раз рассказывает и показывает как можно легко собрать проект с помощью вебпака и бабеля. В интернете этот курс лежит в открытом доступе и найти его не составит труда.

@stillmaster вот тебе видео, чтобы не искал https://dropmefiles.com/x7dyb
там 5 видео, все что тебе надо в 3 и 4, но добавил дополнительные чтобы было ясно как создавать проект и скомпилировать.
Надеюсь поможет
Попробую изучить, если что отпишусь. Верстку самостоятельно освоил, может JS подтяну.
 

Пользователи, просматривающие данную тему

Верх