当前位置:首页 > JavaScript

js实现图片滑动

2026-01-30 10:06:59JavaScript

图片滑动实现方法

使用CSS和JavaScript实现横向滑动

通过CSS设置容器为横向滚动,JavaScript监听触摸事件实现滑动效果。

<div class="slider-container">
  <div class="slider-track">
    <img src="image1.jpg">
    <img src="image2.jpg">
    <img src="image3.jpg">
  </div>
</div>
.slider-container {
  width: 100%;
  overflow-x: scroll;
  white-space: nowrap;
  scroll-snap-type: x mandatory;
}

.slider-track {
  display: inline-block;
}

.slider-track img {
  width: 300px;
  height: 200px;
  object-fit: cover;
  scroll-snap-align: start;
  margin-right: 10px;
}
const slider = document.querySelector('.slider-container');
let isDown = false;
let startX;
let scrollLeft;

slider.addEventListener('mousedown', (e) => {
  isDown = true;
  startX = e.pageX - slider.offsetLeft;
  scrollLeft = slider.scrollLeft;
});

slider.addEventListener('mouseleave', () => {
  isDown = false;
});

slider.addEventListener('mouseup', () => {
  isDown = false;
});

slider.addEventListener('mousemove', (e) => {
  if(!isDown) return;
  e.preventDefault();
  const x = e.pageX - slider.offsetLeft;
  const walk = (x - startX) * 2;
  slider.scrollLeft = scrollLeft - walk;
});

使用Swiper.js库实现

Swiper.js是专业的滑动库,提供丰富的配置选项。

<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide"><img src="image1.jpg"></div>
    <div class="swiper-slide"><img src="image2.jpg"></div>
    <div class="swiper-slide"><img src="image3.jpg"></div>
  </div>
  <div class="swiper-pagination"></div>
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>
</div>
import Swiper from 'https://unpkg.com/swiper/swiper-bundle.esm.browser.min.js'

const swiper = new Swiper('.swiper', {
  loop: true,
  pagination: {
    el: '.swiper-pagination',
    clickable: true,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});

使用CSS Scroll Snap实现纯CSS方案

现代浏览器支持的原生滑动方案,无需JavaScript。

<div class="gallery">
  <img src="image1.jpg">
  <img src="image2.jpg">
  <img src="image3.jpg">
</div>
.gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc(100% - 1rem);
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 1rem;
}

.gallery img {
  scroll-snap-align: start;
  width: 100%;
  height: 300px;
  object-fit: cover;
}

响应式滑动实现

结合媒体查询实现不同屏幕尺寸下的滑动效果。

@media (max-width: 768px) {
  .slider-container {
    -webkit-overflow-scrolling: touch;
  }

  .slider-track img {
    width: 80vw;
  }
}
window.addEventListener('resize', () => {
  const windowWidth = window.innerWidth;
  const images = document.querySelectorAll('.slider-track img');

  images.forEach(img => {
    img.style.width = windowWidth < 768 ? '80vw' : '300px';
  });
});

js实现图片滑动

标签: 图片js
分享给朋友:

相关文章

css动画制作图片

css动画制作图片

CSS动画制作图片的方法 使用CSS动画可以为图片添加各种动态效果,提升网页的视觉吸引力。以下是几种常见的CSS动画实现方式: 关键帧动画(@keyframes) 通过定义关键帧来控制动画的各个阶段…

css网页制作漂浮图片

css网页制作漂浮图片

使用CSS实现漂浮图片效果 通过CSS的animation属性和@keyframes规则可以轻松实现图片漂浮效果。以下是几种常见实现方式: 基础漂浮动画 通过关键帧定义图片的垂直移动,模拟漂浮感:…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…