jQuery横向滑动效果通常是指在一个容器内,通过动画效果实现子元素的横向滚动。这种效果常用于图片轮播、商品展示等场景。
以下是一个简单的jQuery横向滑动效果的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery横向滑动效果</title>
<style>
.slider {
width: 100%;
overflow: hidden;
position: relative;
}
.slider ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
transition: transform 0.5s ease-in-out;
}
.slider li {
min-width: 200px;
padding: 10px;
box-sizing: border-box;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div class="slider">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
</div>
<script>
$(document).ready(function() {
var $slider = $('.slider ul');
var itemWidth = $slider.find('li').outerWidth(true);
var totalItems = $slider.find('li').length;
var totalWidth = itemWidth * totalItems;
function slideTo(index) {
$slider.css('transform', 'translateX(-' + (index * itemWidth) + 'px)');
}
// 自动滑动
setInterval(function() {
var currentIndex = parseInt($slider.css('transform').split(',')[4]) / itemWidth;
var nextIndex = (currentIndex + 1) % totalItems;
slideTo(nextIndex);
}, 2000);
// 手动滑动
$('.slider').on('click', '.prev', function() {
var currentIndex = parseInt($slider.css('transform').split(',')[4]) / itemWidth;
var prevIndex = (currentIndex - 1 + totalItems) % totalItems;
slideTo(prevIndex);
});
$('.slider').on('click', '.next', function() {
var currentIndex = parseInt($slider.css('transform').split(',')[4]) / itemWidth;
var nextIndex = (currentIndex + 1) % totalItems;
slideTo(nextIndex);
});
});
</script>
</body>
</html>
requestAnimationFrame
代替setInterval
,减少DOM操作。outerWidth(true)
获取包含边框和内边距的宽度。TouchSwipe
,确保触摸事件处理正确。通过以上方法,可以有效地实现和优化jQuery横向滑动效果。
领取专属 10元无门槛券
手把手带您无忧上云