当前位置:首页 > JavaScript

js实现图片滑动

2026-03-01 01:11:44JavaScript

实现图片滑动效果

使用JavaScript实现图片滑动效果可以通过多种方式完成,以下是几种常见的方法:

使用CSS和JavaScript结合实现滑动

通过CSS设置容器和图片样式,JavaScript处理滑动逻辑:

const slider = document.querySelector('.slider');
const images = document.querySelectorAll('.slider img');
let currentIndex = 0;

function slideTo(index) {
    slider.style.transform = `translateX(-${index * 100}%)`;
}

document.querySelector('.next').addEventListener('click', () => {
    currentIndex = (currentIndex + 1) % images.length;
    slideTo(currentIndex);
});

document.querySelector('.prev').addEventListener('click', () => {
    currentIndex = (currentIndex - 1 + images.length) % images.length;
    slideTo(currentIndex);
});

对应的CSS样式:

.slider {
    display: flex;
    transition: transform 0.5s ease;
    width: 100%;
}

.slider img {
    width: 100%;
    flex-shrink: 0;
}

使用Swiper.js库

Swiper是一个流行的滑动库,可以轻松实现各种滑动效果:

import Swiper from 'swiper';
import 'swiper/css';

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

HTML结构:

<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-next"></div>
    <div class="swiper-button-prev"></div>
</div>

实现自动轮播

在基础滑动上添加自动轮播功能:

let intervalId;
const delay = 3000;

function startAutoSlide() {
    intervalId = setInterval(() => {
        currentIndex = (currentIndex + 1) % images.length;
        slideTo(currentIndex);
    }, delay);
}

function stopAutoSlide() {
    clearInterval(intervalId);
}

slider.addEventListener('mouseenter', stopAutoSlide);
slider.addEventListener('mouseleave', startAutoSlide);

startAutoSlide();

添加触摸支持

为移动设备添加触摸事件支持:

let touchStartX = 0;
let touchEndX = 0;

slider.addEventListener('touchstart', (e) => {
    touchStartX = e.changedTouches[0].screenX;
});

slider.addEventListener('touchend', (e) => {
    touchEndX = e.changedTouches[0].screenX;
    handleSwipe();
});

function handleSwipe() {
    if (touchEndX < touchStartX) {
        // 向左滑动,显示下一张
        currentIndex = (currentIndex + 1) % images.length;
        slideTo(currentIndex);
    }
    if (touchEndX > touchStartX) {
        // 向右滑动,显示上一张
        currentIndex = (currentIndex - 1 + images.length) % images.length;
        slideTo(currentIndex);
    }
}

添加过渡效果

使用CSS添加平滑过渡效果:

js实现图片滑动

.slider {
    transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}

这些方法可以根据具体需求进行组合和调整,实现不同风格的图片滑动效果。

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

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…