当前位置:首页 > 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样式:

js实现图片滑动

.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结构:

js实现图片滑动

<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添加平滑过渡效果:

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

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

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

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…