首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js实现左右滑动效果代码

要实现一个左右滑动效果,在JavaScript中可以通过监听触摸事件或者鼠标事件来完成。以下是一个简单的示例代码,展示了如何使用JavaScript和CSS来实现一个可左右滑动的图片轮播效果:

HTML部分:

代码语言:txt
复制
<div class="slider-container">
  <div class="slider-wrapper">
    <img src="image1.jpg" alt="Image 1" class="slide">
    <img src="image2.jpg" alt="Image 2" class="slide">
    <img src="image3.jpg" alt="Image 3" class="slide">
    <!-- 更多图片... -->
  </div>
</div>

CSS部分:

代码语言:txt
复制
.slider-container {
  width: 100%;
  overflow: hidden; /* 隐藏溢出的部分 */
}

.slider-wrapper {
  display: flex;
  transition: transform 0.3s ease; /* 平滑过渡效果 */
}

.slide {
  min-width: 100%; /* 确保每张图片都能完整显示 */
}

JavaScript部分:

代码语言:txt
复制
const sliderWrapper = document.querySelector('.slider-wrapper');
let isDown = false;
let startX;
let scrollLeft;

// 监听鼠标按下事件
sliderWrapper.addEventListener('mousedown', (e) => {
  isDown = true;
  sliderWrapper.classList.add('active');
  startX = e.pageX - sliderWrapper.offsetLeft;
  scrollLeft = sliderWrapper.scrollLeft;
});

// 监听鼠标移动事件
sliderWrapper.addEventListener('mouseleave', () => {
  isDown = false;
  sliderWrapper.classList.remove('active');
});

sliderWrapper.addEventListener('mouseup', () => {
  isDown = false;
  sliderWrapper.classList.remove('active');
});

sliderWrapper.addEventListener('mousemove', (e) => {
  if(!isDown) return;
  e.preventDefault();
  const x = e.pageX - sliderWrapper.offsetLeft;
  const walk = (x - startX) * 3; // 调整滑动速度
  sliderWrapper.scrollLeft = scrollLeft - walk;
});

// 如果需要支持触摸设备,可以添加以下事件监听
sliderWrapper.addEventListener('touchstart', (e) => {
  isDown = true;
  startX = e.touches[0].pageX - sliderWrapper.offsetLeft;
  scrollLeft = sliderWrapper.scrollLeft;
});

sliderWrapper.addEventListener('touchend', () => {
  isDown = false;
});

sliderWrapper.addEventListener('touchmove', (e) => {
  if(!isDown) return;
  const x = e.touches[0].pageX - sliderWrapper.offsetLeft;
  const walk = (x - startX) * 3; // 调整滑动速度
  sliderWrapper.scrollLeft = scrollLeft - walk;
});

在这个例子中,我们创建了一个.slider-container容器,它有一个.slider-wrapper子元素,用于包含所有的.slide图片。通过监听鼠标和触摸事件,我们可以计算出用户的滑动距离,并相应地更新.slider-wrapperscrollLeft属性,从而实现左右滑动效果。

这个例子是一个基础的滑动效果实现,你可以根据自己的需求进行调整和优化,比如添加自动播放、指示器、无限循环等功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券