Slider slides many times

Reza Saadati

I am trying to create a slider with event listeners touchstart and touchmove.

The slider works very good, if you click on the buttons. But if you move your finger from left to right, it slides many times until the last image but it should only slide once. Also you cannot slide back.

var i = 0;

// Go next
$('.next').bind('click', function() {           
    niceSlider('left', '<');
});

// Go Back
$('.back').bind('click', function() {
    niceSlider('right', '>', 0); 
});

// Greather or less
function greatherOrLess(num1, operator, num2) {
    if (operator == '<') {
    return (num1 < num2) ? true : false;
  }
  else if (operator == '>') {
    return (num1 > num2) ? true : false;
  }
}

// Slider
function niceSlider(direction, operator, NumberOfAllImages = 4, position = 600) {
  var direction = (direction == 'left') ? '-' : '+';  
  if (greatherOrLess(i, operator, NumberOfAllImages)) {
    if (direction == '+' || direction == '-') {
      $('li').animate({'left': direction + '=600px'}, 300).delay(600);  
      x = (direction == '-') ? i++ : i--;
    }
  }
  console.log($('li:first').position().left);
  console.log(x);   
}

// Event Listener
var slider = document.querySelector('.slider');
slider.addEventListener('touchstart', handleTouchStart, false);
slider.addEventListener('touchmove', handleTouchMove, false);

// Start from touch
function handleTouchStart(evt) {
  startClientX = evt.touches[0].clientX;
  startClientY = evt.touches[0].clientY;
}

// Move from touch
function handleTouchMove(evt) {
  moveClientX = evt.touches[0].clientX;
  moveClientY = evt.touches[0].clientY;

  var diffClientX = startClientX - moveClientX;
  var diffClientY = startClientY - moveClientY;

  if (Math.abs(diffClientX) > Math.abs(diffClientY)) {
    if (diffClientX > 0) {
      niceSlider('left', '<');
    }
    else {
      niceSlider('right', '>');
    }
  }
}

There must be something wrong with the function handleTouchMove. How can I fix it?

https://jsfiddle.net/6t1wx95f/16/

Durga
function handleTouchStart(evt) {
  startClientX = evt.touches[0].clientX;
  startClientY = evt.touches[0].clientY;
  checkTouch = true;
}

// Move from touch
function handleTouchMove(evt) {
  moveClientX = evt.touches[0].clientX;
  moveClientY = evt.touches[0].clientY;

  if (checkTouch) {
    var diffClientX = startClientX - moveClientX;
    var diffClientY = startClientY - moveClientY;
    if (Math.abs(diffClientX) > Math.abs(diffClientY)) {
      if (diffClientX > 0) {
        niceSlider('left', '<');
      } else {
        niceSlider('right', '>', 0);
      }
    }
    checkTouch = false;
  }
}

function handleTouchEnd(evt) {
  checkTouch = true;
}

Here is jsFiddle, check it for only once use a boolean value. On touch move next function was calling on every move.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

using @Autowired many times

From Dev

Slick Slider 2 sliders not matching slides and Slider inside Bootstrap Modal

From Dev

Undo many times in Vim?

From Dev

Image slider in jQuery with actual slides as next/prev triggers

From Dev

BX Slider - Responsive - Min / Max Slides

From Dev

carouFredSel Slider - prevent scroll to top on slides rolling

From Dev

Slick Slider - How to Remove Specific Slides On Click

From Dev

Regex to match many times

From Dev

Slick slider next and prev slides css

From Dev

slick has empty slides at the end of slider

From Dev

Slick slider centermode not working when more slides than slidestoshow variable

From Dev

React Native Slider - onValueChange invoked too many times

From Dev

Slick Slider - Hiding additional slides until slider is initialised

From Dev

filter many times a tibble

From Dev

Swiper Slider puts all slides in one slide

From Dev

How to show/hide divs when slider's slides are visible/hidden

From Dev

Swiper slider active class on slides in viewport and current class on one only

From Dev

Slick Slider Show Overflow, Hide Slides

From Dev

Bxslider slider doesn't load the slides in order

From Dev

In JSSOR, how do you add additional slides to the full width slider?

From Dev

JQuery slider: fade non active slides

From Dev

Slick slider arrows behave as slides in resposnsive mode

From Dev

Wordpress Expert.Contact form in slider revolution slides

From Dev

How to not repeat == many times

From Dev

How to change rendering flow of slides in Swiper Cover Flow Slider

From Dev

SetState called many times

From Dev

Javascript image slider tutorial: "TypeError: slides is null"

From Dev

javascript slider error while using multiple slides in html

From Dev

Duplicating a slide several times - Google Slides

Related Related

  1. 1

    using @Autowired many times

  2. 2

    Slick Slider 2 sliders not matching slides and Slider inside Bootstrap Modal

  3. 3

    Undo many times in Vim?

  4. 4

    Image slider in jQuery with actual slides as next/prev triggers

  5. 5

    BX Slider - Responsive - Min / Max Slides

  6. 6

    carouFredSel Slider - prevent scroll to top on slides rolling

  7. 7

    Slick Slider - How to Remove Specific Slides On Click

  8. 8

    Regex to match many times

  9. 9

    Slick slider next and prev slides css

  10. 10

    slick has empty slides at the end of slider

  11. 11

    Slick slider centermode not working when more slides than slidestoshow variable

  12. 12

    React Native Slider - onValueChange invoked too many times

  13. 13

    Slick Slider - Hiding additional slides until slider is initialised

  14. 14

    filter many times a tibble

  15. 15

    Swiper Slider puts all slides in one slide

  16. 16

    How to show/hide divs when slider's slides are visible/hidden

  17. 17

    Swiper slider active class on slides in viewport and current class on one only

  18. 18

    Slick Slider Show Overflow, Hide Slides

  19. 19

    Bxslider slider doesn't load the slides in order

  20. 20

    In JSSOR, how do you add additional slides to the full width slider?

  21. 21

    JQuery slider: fade non active slides

  22. 22

    Slick slider arrows behave as slides in resposnsive mode

  23. 23

    Wordpress Expert.Contact form in slider revolution slides

  24. 24

    How to not repeat == many times

  25. 25

    How to change rendering flow of slides in Swiper Cover Flow Slider

  26. 26

    SetState called many times

  27. 27

    Javascript image slider tutorial: "TypeError: slides is null"

  28. 28

    javascript slider error while using multiple slides in html

  29. 29

    Duplicating a slide several times - Google Slides

HotTag

Archive