jQuery is a very popular Javascript library that contains a large number of utility functions and methods that allow us to manipulate HTML and CSS elements more easily. In this article, we will introduce how to implement the sliding method using jQuery.
Sliding is a common user interaction action that allows users to drag elements on the page and may be needed in some situations. For example, in the carousel image, we hope that the user can switch to the next picture or the previous picture through gestures, so we need to implement a sliding method to achieve this.
Before implementing the sliding method, we need to perform gesture recognition first to determine whether the user is sliding horizontally or vertically. In jQuery, we can use events such as mousedown
, mousemove
, and mouseup
to implement gesture recognition. The specific code is as follows:
var startX, startY, endX, endY; $(document).on('mousedown', function(e) { startX = e.clientX; startY = e.clientY; }); $(document).on('mousemove', function(e) { endX = e.clientX; endY = e.clientY; var direction = swipeDirection(startX, startY, endX, endY); }); $(document).on('mouseup', function(e) { endX = e.clientX; endY = e.clientY; var direction = swipeDirection(startX, startY, endX, endY); }); function swipeDirection(startX, startY, endX, endY) { var diffX = Math.abs(startX - endX); var diffY = Math.abs(startY - endY); if (diffX > diffY) { return (startX > endX) ? 'left' : 'right'; } else { return (startY > endY) ? 'up' : 'down'; } }
In the above code, we record the coordinates where the user starts to trigger the gesture through the mousedown
event, and then record the user through the mousemove
event For the coordinates at which the sliding ends, we can use the swipeDirection
function to determine whether the user slid horizontally or vertically. Finally, we use the mouseup
event to record the coordinates when the gesture ends.
After performing gesture recognition, we can implement the sliding method. In the following example, we will use jQuery's animate
method to implement a smooth sliding animation so that the image can follow the gesture when it is dragged.
<!DOCTYPE html> <html> <head> <title>滑动方法示例</title> </head> <body> <div style="width: 800px; height: 400px; overflow: hidden;"> <img id="slider" style="width: 4000px; height: 400px;" src="1.jpg, 2.jpg, 3.jpg, 4.jpg"> </div> </body> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> var slider = $('#slider'); var currentPos = 0; //记录当前的位置 var sliderWidth = slider.width(); //获取图片宽度 var len = slider.children('img').length; //获取图片数量 //监听鼠标按下事件 slider.on('mousedown', function(e) { var startX = e.pageX; //获取鼠标按下时的坐标 var left = parseFloat(slider.css('left')); //获取初始位置 var endX; //监听鼠标移动事件 slider.on('mousemove', function(e) { endX = e.pageX; //获取鼠标移动时的坐标 slider.css('left', left + endX - startX); //设置图片位置 }); //监听鼠标松开事件 slider.on('mouseup', function(e) { $(this).off('mousemove'); //取消鼠标移动事件的监听 var direction = swipeDirection(startX, 0, endX, 0); //判断手势方向 if (direction === 'left' && currentPos < len - 1) { currentPos++; //向左滑动,图片位置加1 slider.animate({ left: '-=' + sliderWidth }); } else if (direction === 'right' && currentPos > 0) { currentPos--; //向右滑动,图片位置减1 slider.animate({ left: '+=' + sliderWidth }); } else { slider.animate({ left: '-=' + (endX - startX) //回到原来的位置 }); } }); //阻止默认事件 e.preventDefault(); }); </script> </html>
In the above code, we first use the mousedown
event to record the coordinates of the user when sliding the picture, and then use the mousemove
event to continuously calculate that the picture should follow the finger The sliding distance, and finally the mouseup
event is used to determine the direction of the user's sliding and perform a smooth sliding animation.
This article introduces how to use jQuery to implement the sliding method. We first perform gesture recognition to determine whether the user is sliding horizontally or vertically, and then implement a smooth sliding animation based on the direction of the user's sliding. In this way, we can implement many customized user interaction effects in the page, giving users a better experience.
The above is the detailed content of jquery sliding method. For more information, please follow other related articles on the PHP Chinese website!