当前位置:首页 > JavaScript

用js实现图片切换效果

2026-04-05 00:21:29JavaScript

基础图片切换实现

使用HTML和JavaScript创建一个简单的图片切换效果,通过点击按钮切换显示不同的图片。

<!DOCTYPE html>
<html>
<head>
    <title>图片切换</title>
</head>
<body>
    <img id="image" src="image1.jpg" width="500">
    <button onclick="prevImage()">上一张</button>
    <button onclick="nextImage()">下一张</button>

    <script>
        const images = ["image1.jpg", "image2.jpg", "image3.jpg"];
        let currentIndex = 0;

        function updateImage() {
            document.getElementById("image").src = images[currentIndex];
        }

        function prevImage() {
            currentIndex = (currentIndex - 1 + images.length) % images.length;
            updateImage();
        }

        function nextImage() {
            currentIndex = (currentIndex + 1) % images.length;
            updateImage();
        }
    </script>
</body>
</html>

自动轮播效果

实现图片自动轮播,每隔一定时间自动切换到下一张图片。

let slideInterval;

function startSlideshow() {
    slideInterval = setInterval(nextImage, 2000); // 每2秒切换一次
}

function stopSlideshow() {
    clearInterval(slideInterval);
}

// 在页面加载时启动轮播
window.onload = function() {
    startSlideshow();

    // 鼠标悬停时暂停轮播
    document.getElementById("image").addEventListener("mouseover", stopSlideshow);
    document.getElementById("image").addEventListener("mouseout", startSlideshow);
};

淡入淡出过渡效果

使用CSS过渡为图片切换添加淡入淡出效果。

<style>
    #image {
        transition: opacity 0.5s ease-in-out;
    }
    .fade {
        opacity: 0;
    }
</style>

<script>
    function updateImage() {
        const img = document.getElementById("image");
        img.classList.add("fade");

        setTimeout(() => {
            img.src = images[currentIndex];
            img.classList.remove("fade");
        }, 500);
    }
</script>

响应式图片切换

根据屏幕大小动态调整图片显示尺寸。

function resizeImage() {
    const img = document.getElementById("image");
    if (window.innerWidth < 768) {
        img.width = 300;
    } else {
        img.width = 500;
    }
}

window.addEventListener("resize", resizeImage);

缩略图导航

添加缩略图预览功能,点击缩略图可直接跳转到对应图片。

<div id="thumbnails"></div>

<script>
    function createThumbnails() {
        const container = document.getElementById("thumbnails");
        images.forEach((img, index) => {
            const thumb = document.createElement("img");
            thumb.src = img;
            thumb.width = 100;
            thumb.onclick = () => {
                currentIndex = index;
                updateImage();
            };
            container.appendChild(thumb);
        });
    }

    window.onload = function() {
        createThumbnails();
        startSlideshow();
    };
</script>

触摸滑动支持

为移动设备添加触摸滑动切换图片的功能。

let touchStartX = 0;
let touchEndX = 0;

const imgElement = document.getElementById("image");

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

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

function handleSwipe() {
    if (touchEndX < touchStartX - 50) {
        nextImage();
    }
    if (touchEndX > touchStartX + 50) {
        prevImage();
    }
}

图片预加载

预加载所有图片以提高切换时的用户体验。

用js实现图片切换效果

function preloadImages() {
    images.forEach(imgSrc => {
        const img = new Image();
        img.src = imgSrc;
    });
}

window.onload = function() {
    preloadImages();
    createThumbnails();
    startSlideshow();
};

以上代码示例展示了不同复杂度的图片切换效果实现方法,可以根据实际需求选择适合的方案或组合多个功能。

标签: 效果图片
分享给朋友:

相关文章

css制作图片

css制作图片

CSS 制作图片的方法 使用 background-image 属性 通过 background-image 属性可以为元素设置背景图片。这种方法适用于将图片作为背景而非内容的一部分。 .eleme…

vue实现图片闪烁

vue实现图片闪烁

实现图片闪烁效果的方法 在Vue中实现图片闪烁效果可以通过CSS动画或JavaScript动态控制样式。以下是几种常见方法: CSS动画实现 通过@keyframes定义闪烁动画,并应用到图片元素上…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…

js实现图片拖动

js实现图片拖动

实现图片拖动的步骤 使用JavaScript实现图片拖动功能,可以通过HTML5的拖放API结合事件监听实现。以下是具体方法: 设置HTML结构 为图片添加draggable属性,并设置唯一ID以便…

vue实现折叠效果

vue实现折叠效果

使用 v-show 或 v-if 实现基础折叠 通过 Vue 的指令 v-show 或 v-if 控制元素的显示与隐藏。v-show 通过 CSS 的 display 属性切换,v-if 直接操作 D…

vue实现图片复制

vue实现图片复制

Vue 实现图片复制功能 在 Vue 中实现图片复制功能通常涉及两种方式:通过剪贴板 API 或借助第三方库。以下是具体实现方法: 使用 Clipboard API(现代浏览器支持) 通过 navi…