实现一个移动端焦点轮播图

简介: 实现一个移动端焦点轮播图

HTML结构

创建一个轮播图的容器,并在其中放置轮播图片。

<div id="carousel">  
    <div class="carousel-item active">  
        <img src="image1.jpg" alt="Image 1">  
    </div>  
    <div class="carousel-item">  
        <img src="image2.jpg" alt="Image 2">  
    </div>  
    <!-- 更多图片... -->  
</div>  
  
<button id="prevBtn">上一张</button>  
<button id="nextBtn">下一张</button>
  1. CSS样式:为轮播图和按钮添加样式。
#carousel {  
    position: relative;  
    overflow: hidden;  
    width: 100%;  
    height: 0;  
    padding-bottom: 56.25%; /* 16:9 Aspect Ratio */  
}  
  
.carousel-item {  
    position: absolute;  
    top: 0;  
    left: 100%;  
    width: 100%;  
    height: 100%;  
    transition: left 0.5s ease-in-out;  
}  
  
.carousel-item img {  
    width: 100%;  
    height: 100%;  
    object-fit: cover;  
}  
  
.carousel-item.active {  
    left: 0;  
}  
  
#prevBtn, #nextBtn {  
    position: absolute;  
    top: 50%;  
    transform: translateY(-50%);  
    background-color: rgba(0, 0, 0, 0.5);  
    color: white;  
    border: none;  
    padding: 10px;  
    cursor: pointer;  
}  
  
#prevBtn {  
    left: 10px;  
}  
  
#nextBtn {  
    right: 10px;  
}

JavaScript逻辑

使用JavaScript来控制轮播图的切换

 

// 模拟接口返回的图片数量  
const imageCount = 5;  
  
// 获取DOM元素  
const carousel = document.getElementById('carousel');  
const prevBtn = document.getElementById('prevBtn');  
const nextBtn = document.getElementById('nextBtn');  
  
// 创建轮播图项  
for (let i = 0; i < imageCount; i++) {  
    const item = document.createElement('div');  
    item.classList.add('carousel-item');  
    const img = document.createElement('img');  
    img.src = `image${i + 1}.jpg`;  
    img.alt = `Image ${i + 1}`;  
    item.appendChild(img);  
    carousel.appendChild(item);  
}  
  
// 设置初始激活状态  
carousel.querySelector('.carousel-item').classList.add('active');  
  
// 上一张/下一张图片  
let currentIndex = 0;  
prevBtn.addEventListener('click', () => {  
    currentIndex--;  
    if (currentIndex < 0) currentIndex = imageCount - 1;  
    updateCarousel();  
});  
  
nextBtn.addEventListener('click', () => {  
    currentIndex++;  
    if (currentIndex >= imageCount) currentIndex = 0;  
    updateCarousel();  
});  
  
// 更新轮播图  
function updateCarousel() {  
    const items = carousel.querySelectorAll('.carousel-item');  
    items.forEach(item => item.classList.remove('active'));  
    items[currentIndex].classList.add('active');  
}

 

相关文章
|
3月前
|
前端开发 UED
触屏新体验:CSS动画让移动端底部导航活起来!
触屏新体验:CSS动画让移动端底部导航活起来!
|
前端开发
移动端盒子拖拽
移动端盒子拖拽
57 0
|
小程序
【微信小程序】滚动 轮播图 文本
🍒小程序的宿主环境 - 组件 1.scroll-view 组件的基本使用 2.swiper 和 swiper-item 组件的基本使用 3.text 组件的基本使用 4.rich-text 组件的基本使用
【微信小程序】滚动 轮播图 文本
【分享】宜搭抽屉内嵌入表单,表单提交后自动隐藏抽屉
抽屉内嵌入表单,表单提交后自动隐藏抽屉
556 1
|
JavaScript Serverless 容器
ue仿携程轮播图效果(滑动轮播,下方高度自适应)
这篇文章主要介绍了vue仿携程轮播图效果(滑动轮播,下方高度自适应),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
|
前端开发 开发者
轮播图-移动端|学习笔记
快速学习 轮播图-移动端
102 0
轮播图-移动端|学习笔记
|
存储 前端开发 JavaScript
轮播图-非移动端 |学习笔记
快速学习轮播图-非移动端
|
JavaScript
vue移动端 实现手机左右滑动入场动画
vue移动端 实现手机左右滑动入场动画
|
JavaScript
移动端轮播图
移动端轮播图